优化
This commit is contained in:
@@ -50,6 +50,21 @@ describe('platform first-leg order API', () => {
|
||||
})
|
||||
})
|
||||
|
||||
it('normalizes string pagination fields returned by the gateway', async () => {
|
||||
vi.mocked(http.get).mockResolvedValue({
|
||||
code: '200',
|
||||
message: 'success',
|
||||
data: { records: [], page: '1', size: '20', total: '6', pages: '1' },
|
||||
})
|
||||
|
||||
await expect(listPlatformFirstLegOrders({ status: 'SUBMITTED', page: 1, size: 20 })).resolves.toMatchObject({
|
||||
page: 1,
|
||||
size: 20,
|
||||
total: 6,
|
||||
pages: 1,
|
||||
})
|
||||
})
|
||||
|
||||
it('uses the platform lifecycle routes and target tenant query parameter', async () => {
|
||||
vi.mocked(http.get).mockResolvedValue({ code: '200', message: 'success', data: { order: {} } })
|
||||
vi.mocked(http.post).mockResolvedValue({ code: '200', message: 'success', data: null })
|
||||
|
||||
@@ -105,6 +105,13 @@ export interface PlatformFirstLegOrderPageResource {
|
||||
pages: number
|
||||
}
|
||||
|
||||
type PlatformFirstLegOrderPagePayload = Omit<PlatformFirstLegOrderPageResource, 'page' | 'size' | 'total' | 'pages'> & {
|
||||
page: number | string
|
||||
size: number | string
|
||||
total: number | string
|
||||
pages: number | string
|
||||
}
|
||||
|
||||
export interface PlatformFirstLegOrderQuery {
|
||||
tenantId?: string
|
||||
keyword?: string
|
||||
@@ -127,8 +134,20 @@ async function postData<T>(path: string, body?: unknown, params?: Record<string,
|
||||
return unwrapApiResponse(response)
|
||||
}
|
||||
|
||||
export function listPlatformFirstLegOrders(query: PlatformFirstLegOrderQuery) {
|
||||
return getData<PlatformFirstLegOrderPageResource>('/platform/v1/orders/first-leg', { ...query })
|
||||
function paginationNumber(value: number | string, fallback: number) {
|
||||
const parsed = Number(value)
|
||||
return Number.isFinite(parsed) && parsed >= 0 ? Math.trunc(parsed) : fallback
|
||||
}
|
||||
|
||||
export async function listPlatformFirstLegOrders(query: PlatformFirstLegOrderQuery) {
|
||||
const result = await getData<PlatformFirstLegOrderPagePayload>('/platform/v1/orders/first-leg', { ...query })
|
||||
return {
|
||||
...result,
|
||||
page: paginationNumber(result.page, query.page),
|
||||
size: paginationNumber(result.size, query.size),
|
||||
total: paginationNumber(result.total, 0),
|
||||
pages: paginationNumber(result.pages, 0),
|
||||
} satisfies PlatformFirstLegOrderPageResource
|
||||
}
|
||||
|
||||
export function getPlatformFirstLegOrder(tenantId: string, orderId: string) {
|
||||
|
||||
Reference in New Issue
Block a user