feat: redesign routed ZarinPal merchant dashboard
This commit is contained in:
@@ -4,6 +4,10 @@ export type AuthSession = components['schemas']['AuthSession'];
|
||||
export type ReportingPeriod = components['schemas']['ReportingPeriod'];
|
||||
export type AnalyticsRun = components['schemas']['AnalyticsRun'];
|
||||
export type SessionDetailPage = components['schemas']['SessionDetailPage'];
|
||||
export type SessionDetail = components['schemas']['SessionDetail'];
|
||||
export type Terminal = components['schemas']['Terminal'];
|
||||
export type TerminalList = components['schemas']['TerminalList'];
|
||||
export type SessionStatus = components['schemas']['SessionStatus'];
|
||||
export type DetailView = components['schemas']['DetailView'];
|
||||
export type FailureStage = components['schemas']['FailureStage'];
|
||||
export type Problem = components['schemas']['Problem'];
|
||||
@@ -61,14 +65,17 @@ export const api = {
|
||||
periods() {
|
||||
return request<components['schemas']['PeriodList']>('/analytics/periods');
|
||||
},
|
||||
startRun(periodId: string, csrfToken: string) {
|
||||
terminals() {
|
||||
return request<TerminalList>('/analytics/terminals');
|
||||
},
|
||||
startRun(periodId: string, csrfToken: string, terminalId?: string) {
|
||||
return request<AnalyticsRun>('/analytics/runs', {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'X-CSRF-Token': csrfToken,
|
||||
'Idempotency-Key': crypto.randomUUID(),
|
||||
},
|
||||
body: JSON.stringify({ periodId }),
|
||||
body: JSON.stringify({ periodId, ...(terminalId ? { terminalId } : {}) }),
|
||||
});
|
||||
},
|
||||
run(runId: string) {
|
||||
@@ -86,15 +93,49 @@ export const api = {
|
||||
},
|
||||
);
|
||||
},
|
||||
details(periodId: string, view: DetailView, cursor?: string, failureStage?: FailureStage) {
|
||||
details(
|
||||
periodId: string,
|
||||
view: DetailView,
|
||||
options: {
|
||||
cursor?: string;
|
||||
failureStage?: FailureStage;
|
||||
terminalId?: string;
|
||||
status?: SessionStatus;
|
||||
minAmountRial?: number;
|
||||
maxAmountRial?: number;
|
||||
limit?: number;
|
||||
} = {},
|
||||
) {
|
||||
const query = new URLSearchParams({ periodId, view, limit: '25' });
|
||||
if (cursor) query.set('cursor', cursor);
|
||||
if (failureStage) query.set('failureStage', failureStage);
|
||||
if (options.cursor) query.set('cursor', options.cursor);
|
||||
if (options.failureStage) query.set('failureStage', options.failureStage);
|
||||
if (options.terminalId) query.set('terminalId', options.terminalId);
|
||||
if (options.status) query.set('status', options.status);
|
||||
if (options.minAmountRial !== undefined) query.set('minAmountRial', String(options.minAmountRial));
|
||||
if (options.maxAmountRial !== undefined) query.set('maxAmountRial', String(options.maxAmountRial));
|
||||
if (options.limit) query.set('limit', String(options.limit));
|
||||
return request<SessionDetailPage>(`/analytics/session-details?${query}`);
|
||||
},
|
||||
exportUrl(periodId: string, view: DetailView, failureStage?: FailureStage) {
|
||||
sessionDetail(sessionId: string) {
|
||||
return request<SessionDetail>(`/analytics/sessions/${encodeURIComponent(sessionId)}`);
|
||||
},
|
||||
exportUrl(
|
||||
periodId: string,
|
||||
view: DetailView,
|
||||
options: {
|
||||
failureStage?: FailureStage;
|
||||
terminalId?: string;
|
||||
status?: SessionStatus;
|
||||
minAmountRial?: number;
|
||||
maxAmountRial?: number;
|
||||
} = {},
|
||||
) {
|
||||
const query = new URLSearchParams({ periodId, view });
|
||||
if (failureStage) query.set('failureStage', failureStage);
|
||||
if (options.failureStage) query.set('failureStage', options.failureStage);
|
||||
if (options.terminalId) query.set('terminalId', options.terminalId);
|
||||
if (options.status) query.set('status', options.status);
|
||||
if (options.minAmountRial !== undefined) query.set('minAmountRial', String(options.minAmountRial));
|
||||
if (options.maxAmountRial !== undefined) query.set('maxAmountRial', String(options.maxAmountRial));
|
||||
return `${apiBase}/analytics/session-details.csv?${query}`;
|
||||
},
|
||||
};
|
||||
|
||||
2699
src/lib/api/schema.d.ts
vendored
2699
src/lib/api/schema.d.ts
vendored
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user