Files
order_site/apps/frontend/src/services/admin/tasks.ts
T

94 lines
2.6 KiB
TypeScript

import { apiGet, apiGetBlob, apiPost } from '@/lib/http'
import type {
AdminPagination,
AdminTaskActionResponse,
AdminTaskDetail,
AdminTaskListItem,
} from '@/types/admin'
export function fetchAdminTasks(params?: Record<string, unknown>) {
return apiGet<{ items: AdminTaskListItem[]; pagination: AdminPagination }>(
'/api/v1/admin/tasks',
params,
)
}
export function fetchAdminTaskDetail(taskId: number | string) {
return apiGet<AdminTaskDetail>(`/api/v1/admin/tasks/${taskId}`)
}
export function fetchAdminTaskScreenshot(taskId: number | string) {
return apiGetBlob(`/api/v1/admin/tasks/${taskId}/screenshot`)
}
export function retryAdminTask(taskId: number | string) {
return apiPost<AdminTaskActionResponse>(`/api/v1/admin/tasks/${taskId}/retry`, {})
}
export function regenerateAdminTaskClaimLink(taskId: number | string) {
return apiPost<AdminTaskActionResponse>(`/api/v1/admin/tasks/${taskId}/regenerate-claim-link`, {})
}
export function closeAdminTask(taskId: number | string) {
return apiPost<AdminTaskActionResponse>(`/api/v1/admin/tasks/${taskId}/close`, {})
}
export function markAdminTaskManualReview(taskId: number | string) {
return apiPost<AdminTaskActionResponse>(`/api/v1/admin/tasks/${taskId}/mark-manual-review`, {})
}
export function completeAdminTaskManualDispatch(
taskId: number | string,
payload: {
outcome: 'delivered' | 'failed'
resultMessage?: string
deliveryReference?: string
deliveredCredential?: string
},
) {
return apiPost<AdminTaskActionResponse>(
`/api/v1/admin/tasks/${taskId}/complete-manual-dispatch`,
payload,
)
}
export function prepareAdminTaskKuaishouCloudFulfillment(taskId: number | string) {
return apiPost<AdminTaskActionResponse>(
`/api/v1/admin/tasks/${taskId}/kuaishou-cloud/prepare`,
{},
)
}
export function refreshAdminTaskKuaishouCloudRoleInfo(taskId: number | string) {
return apiPost<AdminTaskActionResponse>(
`/api/v1/admin/tasks/${taskId}/kuaishou-cloud/refresh-role-info`,
{},
)
}
export function rebindAdminTaskKuaishouCloudRole(taskId: number | string) {
return apiPost<AdminTaskActionResponse>(
`/api/v1/admin/tasks/${taskId}/kuaishou-cloud/rebind-role`,
{},
)
}
export function dispatchAdminTaskKuaishouCloudFulfillment(
taskId: number | string,
payload: {
ticketCode?: string
} = {},
) {
return apiPost<AdminTaskActionResponse>(
`/api/v1/admin/tasks/${taskId}/kuaishou-cloud/dispatch`,
payload,
)
}
export function returnNumberAdminTaskKuaishouCloudFulfillment(taskId: number | string) {
return apiPost<AdminTaskActionResponse>(
`/api/v1/admin/tasks/${taskId}/kuaishou-cloud/return-number`,
{},
)
}