Skip to content

Commit 8d6713f

Browse files
authored
fix cancel message when an order maker cancels it (#601)
* fix cancel message when a order maker cancels it, also the order will not be republished * fix tests * variable rename
1 parent 0c4d15a commit 8d6713f

File tree

1 file changed

+43
-28
lines changed

1 file changed

+43
-28
lines changed

Diff for: bot/commands.js

+43-28
Original file line numberDiff line numberDiff line change
@@ -233,10 +233,12 @@ const saveUserReview = async (targetUser, rating) => {
233233
const cancelAddInvoice = async (ctx, order, job) => {
234234
try {
235235
let userAction = false;
236+
let userTgId = false;
236237
if (!job) {
237238
ctx.deleteMessage();
238239
ctx.scene.leave();
239240
userAction = true;
241+
userTgId = ctx.from.id;
240242
if (!order) {
241243
const orderId = !!ctx && ctx.update.callback_query.message.text;
242244
if (!orderId) return;
@@ -258,6 +260,9 @@ const cancelAddInvoice = async (ctx, order, job) => {
258260
return await messages.genericErrorMessage(ctx, user, i18nCtx);
259261

260262
const sellerUser = await User.findOne({ _id: order.seller_id });
263+
const buyerUser = await User.findOne({ _id: order.buyer_id });
264+
const sellerTgId = sellerUser.tg_id;
265+
// If order creator cancels it, it will not be republished
261266
if (order.creator_id === order.buyer_id) {
262267
order.status = 'CLOSED';
263268
await order.save();
@@ -269,6 +274,21 @@ const cancelAddInvoice = async (ctx, order, job) => {
269274
order,
270275
i18nCtxSeller
271276
);
277+
} else if (order.creator_id === order.seller_id && userTgId == sellerTgId) {
278+
order.status = 'CLOSED';
279+
await order.save();
280+
await messages.successCancelOrderMessage(
281+
ctx,
282+
sellerUser,
283+
order,
284+
i18nCtx
285+
);
286+
await messages.counterPartyCancelOrderMessage(
287+
ctx,
288+
buyerUser,
289+
order,
290+
i18nCtx
291+
);
272292
} else {
273293
// Re-publish order
274294
if (userAction) {
@@ -315,20 +335,7 @@ const cancelAddInvoice = async (ctx, order, job) => {
315335
order,
316336
i18nCtx
317337
);
318-
} else {
319-
await messages.successCancelOrderMessage(
320-
ctx,
321-
sellerUser,
322-
order,
323-
i18nCtx
324-
);
325-
await messages.counterPartyCancelOrderMessage(
326-
ctx,
327-
user,
328-
order,
329-
i18nCtx
330-
);
331-
}
338+
}
332339
} else {
333340
await messages.successCancelOrderMessage(ctx, user, order, i18nCtx);
334341
}
@@ -408,10 +415,12 @@ const showHoldInvoice = async (ctx, bot, order) => {
408415
const cancelShowHoldInvoice = async (ctx, order, job) => {
409416
try {
410417
let userAction = false;
418+
let userTgId = false;
411419
if (!job) {
412420
ctx.deleteMessage();
413421
ctx.scene.leave();
414422
userAction = true;
423+
userTgId = ctx.from.id;
415424
if (!order) {
416425
const orderId = !!ctx && ctx.update.callback_query.message.text;
417426
if (!orderId) return;
@@ -431,6 +440,9 @@ const cancelShowHoldInvoice = async (ctx, order, job) => {
431440
return await messages.genericErrorMessage(ctx, user, i18nCtx);
432441

433442
const buyerUser = await User.findOne({ _id: order.buyer_id });
443+
const sellerUser = await User.findOne({ _id: order.seller_id });
444+
const buyerTgId = buyerUser.tg_id;
445+
// If order creator cancels it, it will not be republished
434446
if (order.creator_id === order.seller_id) {
435447
order.status = 'CLOSED';
436448
await order.save();
@@ -441,6 +453,22 @@ const cancelShowHoldInvoice = async (ctx, order, job) => {
441453
order,
442454
i18nCtx
443455
);
456+
} else if (order.creator_id === order.buyer_id && userTgId == buyerTgId) {
457+
order.status = 'CLOSED';
458+
await order.save();
459+
await messages.successCancelOrderMessage(
460+
ctx,
461+
buyerUser,
462+
order,
463+
i18nCtx
464+
);
465+
await messages.counterPartyCancelOrderMessage(
466+
ctx,
467+
sellerUser,
468+
order,
469+
i18nCtx
470+
);
471+
444472
} else {
445473
// Re-publish order
446474
if (userAction) {
@@ -488,20 +516,7 @@ const cancelShowHoldInvoice = async (ctx, order, job) => {
488516
order,
489517
i18nCtx
490518
);
491-
} else {
492-
await messages.successCancelOrderMessage(
493-
ctx,
494-
buyerUser,
495-
order,
496-
i18nCtx
497-
);
498-
await messages.counterPartyCancelOrderMessage(
499-
ctx,
500-
user,
501-
order,
502-
i18nCtx
503-
);
504-
}
519+
}
505520
} else {
506521
await messages.successCancelOrderMessage(ctx, user, order, i18nCtx);
507522
}

0 commit comments

Comments
 (0)