diff --git a/src/interfaces/fetch-data/get-user-orders/GetUserOrdersData.ts b/src/interfaces/fetch-data/get-user-orders/GetUserOrdersData.ts new file mode 100644 index 0000000..e8fa4f8 --- /dev/null +++ b/src/interfaces/fetch-data/get-user-orders/GetUserOrdersData.ts @@ -0,0 +1,23 @@ +export enum GetUserOrdersBodyStatus { + ACTIVE = 'active', + FINISHED = 'finished', +} + +export enum GetUserOrdersBodyType { + BUY = 'buy', + SELL = 'sell', +} + +export type GetUserOrdersData = { + limit: number; + offset: number; + filterInfo: { + status?: GetUserOrdersBodyStatus; + type?: GetUserOrdersBodyType; + date?: { + // UNIX timestamps in milliseconds + from: number; + to: number; + }; + }; +}; diff --git a/src/interfaces/responses/orders/GetUserOrdersRes.ts b/src/interfaces/responses/orders/GetUserOrdersRes.ts index 4ac61ac..fca3f67 100644 --- a/src/interfaces/responses/orders/GetUserOrdersRes.ts +++ b/src/interfaces/responses/orders/GetUserOrdersRes.ts @@ -19,6 +19,7 @@ interface UserOrderData { interface GetUserOrdersRes { success: true; + totalItemsCount: number; data: UserOrderData[]; } diff --git a/src/utils/methods.ts b/src/utils/methods.ts index 531fe08..ff26583 100644 --- a/src/utils/methods.ts +++ b/src/utils/methods.ts @@ -25,6 +25,7 @@ import axios from 'axios'; import GetPairsPagesAmountRes from '@/interfaces/responses/dex/GetPairsPagesAmountRes'; import { PairSortOption } from '@/interfaces/enum/pair'; import { API_URL } from '@/constants'; +import { GetUserOrdersData } from '@/interfaces/fetch-data/get-user-orders/GetUserOrdersData'; const isServer = typeof window === 'undefined'; const baseUrl = isServer ? API_URL : ''; @@ -246,10 +247,27 @@ export async function getUserOrdersPage(pairId: string): Promise res.data); } -export async function getUserOrders(): Promise { +export async function getUserOrders({ + limit, + offset, + filterInfo: { status, type, date }, +}: GetUserOrdersData): Promise { return axios - .post('/api/orders/get', { + .patch('/api/orders/get', { token: sessionStorage.getItem('token'), + + limit, + offset, + filterInfo: { + status, + type, + date: date + ? { + from: date.from, + to: date.to, + } + : undefined, + }, }) .then((res) => res.data); }