Skip to content

Commit

Permalink
bot: introduced HasTelegram type
Browse files Browse the repository at this point in the history
Introduced HasTelegram type for use in functions that
have `bot` argument, which can be either `Context` or
`Telegraf<Context>`, but only `telegram` property is used.
  • Loading branch information
webwarrior-ws committed Feb 20, 2025
1 parent fba7dcb commit 358b0bf
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 11 deletions.
14 changes: 7 additions & 7 deletions bot/messages.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ const {
} = require('../util');
const OrderEvents = require('./modules/events/orders');
import { logger } from "../logger";
import { MainContext } from './start';
import { HasTelegram, MainContext } from './start';
import { UserDocument } from '../models/user'
import { IOrder } from '../models/order'
import { Telegraf } from 'telegraf';
Expand Down Expand Up @@ -275,15 +275,15 @@ const invoiceInvalidMessage = async (ctx: MainContext) => {
}
};

const invalidOrderMessage = async (ctx: MainContext, bot: MainContext, user: UserDocument) => {
const invalidOrderMessage = async (ctx: MainContext, bot: HasTelegram, user: UserDocument) => {
try {
await bot.telegram.sendMessage(user.tg_id, ctx.i18n.t('order_id_invalid'));
} catch (error) {
logger.error(error);
}
};

const invalidTypeOrderMessage = async (ctx: MainContext, bot: MainContext, user: UserDocument, type: IOrder["type"]) => {
const invalidTypeOrderMessage = async (ctx: MainContext, bot: HasTelegram, user: UserDocument, type: IOrder["type"]) => {
try {
await bot.telegram.sendMessage(
user.tg_id,
Expand All @@ -294,7 +294,7 @@ const invalidTypeOrderMessage = async (ctx: MainContext, bot: MainContext, user:
}
};

const alreadyTakenOrderMessage = async (ctx: MainContext, bot: MainContext, user: UserDocument) => {
const alreadyTakenOrderMessage = async (ctx: MainContext, bot: HasTelegram, user: UserDocument) => {
try {
await bot.telegram.sendMessage(
user.tg_id,
Expand All @@ -321,7 +321,7 @@ const genericErrorMessage = async (bot: MainContext, user: UserDocument, i18n: I
}
};

const beginTakeBuyMessage = async (ctx: MainContext, bot: MainContext, seller: UserDocument, order: IOrder) => {
const beginTakeBuyMessage = async (ctx: MainContext, bot: HasTelegram, seller: UserDocument, order: IOrder) => {
try {
const expirationTime =
Number(process.env.HOLD_INVOICE_EXPIRATION_WINDOW) / 60;
Expand Down Expand Up @@ -438,7 +438,7 @@ const onGoingTakeBuyMessage = async (
}
};

const beginTakeSellMessage = async (ctx: MainContext, bot: MainContext, buyer: UserDocument, order: IOrder) => {
const beginTakeSellMessage = async (ctx: MainContext, bot: HasTelegram, buyer: UserDocument, order: IOrder) => {
try {
const holdInvoiceExpiration = holdInvoiceExpirationInSecs();
const orderExpiration =
Expand Down Expand Up @@ -884,7 +884,7 @@ const sendBuyerInfo2SellerMessage = async (bot: MainContext, buyer: UserDocument
}
};

const cantTakeOwnOrderMessage = async (ctx: MainContext, bot: MainContext, user: UserDocument) => {
const cantTakeOwnOrderMessage = async (ctx: MainContext, bot: HasTelegram, user: UserDocument) => {
try {
await bot.telegram.sendMessage(
user.tg_id,
Expand Down
6 changes: 5 additions & 1 deletion bot/start.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { Telegraf, session, Context } from 'telegraf';
import { Telegraf, session, Context, Telegram } from 'telegraf';
import { I18n, I18nContext } from '@grammyjs/i18n';
import { Message } from 'typegram'
import { UserDocument } from '../models/user'
Expand Down Expand Up @@ -79,6 +79,10 @@ export interface OrderQuery {
seller_id?: string;
}

export interface HasTelegram {
telegram: Telegram;
}

const askForConfirmation = async (user: UserDocument, command: string) => {
try {
let orders: any[] = [];
Expand Down
6 changes: 3 additions & 3 deletions bot/validations.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { MainContext, OrderQuery, ctxUpdateAssertMsg } from "./start";
import { HasTelegram, MainContext, OrderQuery, ctxUpdateAssertMsg } from "./start";
import { ICommunity, IUsernameId } from "../models/community";
import { FilterQuery } from "mongoose";
import { UserDocument } from "../models/user";
Expand Down Expand Up @@ -434,7 +434,7 @@ const isValidInvoice = async (ctx: MainContext, lnInvoice: string) => {
};


const validateTakeSellOrder = async (ctx: MainContext, bot: MainContext, user: UserDocument, order: IOrder) => {
const validateTakeSellOrder = async (ctx: MainContext, bot: HasTelegram, user: UserDocument, order: IOrder) => {
try {
if (!order) {
await messages.invalidOrderMessage(ctx, bot, user);
Expand Down Expand Up @@ -463,7 +463,7 @@ const validateTakeSellOrder = async (ctx: MainContext, bot: MainContext, user: U
}
};

const validateTakeBuyOrder = async (ctx: MainContext, bot: MainContext, user: UserDocument, order: IOrder) => {
const validateTakeBuyOrder = async (ctx: MainContext, bot: HasTelegram, user: UserDocument, order: IOrder) => {
try {
if (!order) {
await messages.invalidOrderMessage(ctx, bot, user);
Expand Down

0 comments on commit 358b0bf

Please sign in to comment.