update: add totalItemsCount in get-user-orders response

This commit is contained in:
Andrew Besedin 2026-02-16 22:17:37 +03:00
parent 5aa1da59e1
commit 186e8019cc
3 changed files with 32 additions and 19 deletions

View file

@ -240,6 +240,8 @@ class OrdersController {
throw new Error('ordersModel.getUserOrders returned Internal error');
}
const { totalItemsCount } = result;
const userOrders = result.data.map((order) => {
const mappedOrder: GetUserOrdersResOrderData = {
id: order.id,
@ -285,6 +287,7 @@ class OrdersController {
res.status(200).send({
success: true,
totalItemsCount,
data: userOrders,
});
} catch (err) {

View file

@ -55,6 +55,7 @@ export type GetUserOrdersResOrderData = {
export type GetUserOrdersSuccessRes = {
success: true;
totalItemsCount: number;
data: GetUserOrdersResOrderData[];
};

View file

@ -1,4 +1,4 @@
import { Op } from 'sequelize';
import { Op, WhereOptions } from 'sequelize';
import Decimal from 'decimal.js';
import TransactionWithOrders from '@/interfaces/common/Transaction.js';
import Currency from '@/schemes/Currency.js';
@ -409,6 +409,7 @@ class OrdersModel {
}
| {
success: true;
totalItemsCount: number;
data: {
id: number;
type: string;
@ -436,24 +437,28 @@ class OrdersModel {
if (!userRow) throw new Error('Invalid address from token.');
const ordersSelectWhereClause: WhereOptions = {
user_id: userRow.id,
...(status !== undefined
? {
status:
status === 'finished' ? OrderStatus.FINISHED : OrderStatus.ACTIVE,
}
: {}),
...(type !== undefined
? { type: type === 'buy' ? OrderType.BUY : OrderType.SELL }
: {}),
...(date !== undefined
? { timestamp: { [Op.between]: [date.from, date.to] } }
: {}),
};
const totalItemsCount = await Order.count({
where: ordersSelectWhereClause,
});
const ordersRows = (await Order.findAll({
where: {
user_id: userRow.id,
...(status !== undefined
? {
status:
status === 'finished'
? OrderStatus.FINISHED
: OrderStatus.ACTIVE,
}
: {}),
...(type !== undefined
? { type: type === 'buy' ? OrderType.BUY : OrderType.SELL }
: {}),
...(date !== undefined
? { timestamp: { [Op.between]: [date.from, date.to] } }
: {}),
},
where: ordersSelectWhereClause,
order: [['timestamp', 'DESC']],
limit,
offset,
@ -487,7 +492,11 @@ class OrdersModel {
isInstant: dexModel.isBotActive(e.id),
}));
return { success: true, data: result };
return {
success: true,
totalItemsCount,
data: result,
};
} catch (err) {
console.log(err);
return { success: false, data: 'Internal error' };