From ac430e0d172d1d22e64424b98aaa5de55b130a7a Mon Sep 17 00:00:00 2001 From: Andrew Besedin Date: Tue, 17 Feb 2026 10:39:08 +0300 Subject: [PATCH] update: add get-user-orders pairId filter --- src/controllers/orders.controller.ts | 1 + src/interfaces/bodies/orders/GetUserOrdersBody.ts | 5 +++++ src/models/Orders.ts | 4 +++- 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/controllers/orders.controller.ts b/src/controllers/orders.controller.ts index 2df33fa..08c3adf 100644 --- a/src/controllers/orders.controller.ts +++ b/src/controllers/orders.controller.ts @@ -224,6 +224,7 @@ class OrdersController { offset, limit, filterInfo: { + pairId: filterInfo.pairId, type: serviceOrderType, status: serviceOrderStatus, date: diff --git a/src/interfaces/bodies/orders/GetUserOrdersBody.ts b/src/interfaces/bodies/orders/GetUserOrdersBody.ts index d5d0c2a..800ec9a 100644 --- a/src/interfaces/bodies/orders/GetUserOrdersBody.ts +++ b/src/interfaces/bodies/orders/GetUserOrdersBody.ts @@ -21,6 +21,7 @@ interface GetUserOrdersBody { limit: number; offset: number; filterInfo: { + pairId?: number; status?: GetUserOrdersBodyStatus; type?: GetUserOrdersBodyType; date?: { @@ -37,6 +38,10 @@ export const getUserOrdersValidator = [ .withMessage('limit must be a positive integer within certain range'), body('offset').isInt({ min: 0 }).withMessage('offset must be a non-negative integer'), body('filterInfo').isObject().withMessage('filterInfo must be an object'), + body('filterInfo.pairId') + .optional() + .isInt({ min: 0 }) + .withMessage('filterInfo.pairId must be a non-negative integer'), body('filterInfo.status') .optional() .isIn(Object.values(GetUserOrdersBodyStatus)) diff --git a/src/models/Orders.ts b/src/models/Orders.ts index 262efa4..16fede8 100644 --- a/src/models/Orders.ts +++ b/src/models/Orders.ts @@ -389,12 +389,13 @@ class OrdersModel { address, offset, limit, - filterInfo: { status, type, date }, + filterInfo: { pairId, status, type, date }, }: { address: string; offset: number; limit: number; filterInfo: { + pairId?: number; status?: 'active' | 'finished'; type?: 'buy' | 'sell'; date?: { @@ -439,6 +440,7 @@ class OrdersModel { const ordersSelectWhereClause: WhereOptions = { user_id: userRow.id, + ...(pairId !== undefined ? { pair_id: pairId } : {}), ...(status !== undefined ? { status: