44 lines
1.5 KiB
TypeScript
44 lines
1.5 KiB
TypeScript
import {
|
|
ApiResponse,
|
|
WorkflowActionPayload,
|
|
WorkflowCreateRequest,
|
|
WorkflowFilters,
|
|
WorkflowRequestItem
|
|
} from "@/types/api";
|
|
import { apiClient } from "./api";
|
|
|
|
export async function getWorkflowRequests(filters: WorkflowFilters = {}): Promise<WorkflowRequestItem[]> {
|
|
const response = await apiClient.get<ApiResponse<WorkflowRequestItem[]>>("/api/workflow/requests", {
|
|
params: filters
|
|
});
|
|
if (!response.data.success) throw new Error(response.data.message);
|
|
return response.data.data;
|
|
}
|
|
|
|
export async function createWorkflowRequest(payload: WorkflowCreateRequest): Promise<WorkflowRequestItem> {
|
|
const response = await apiClient.post<ApiResponse<WorkflowRequestItem>>("/api/workflow/request", payload);
|
|
const data = response.data;
|
|
if (!data.success) throw new Error(data.message);
|
|
return data.data;
|
|
}
|
|
|
|
export async function approveWorkflowRequest(id: string, payload: WorkflowActionPayload): Promise<WorkflowRequestItem> {
|
|
const response = await apiClient.post<ApiResponse<WorkflowRequestItem>>(
|
|
`/api/workflow/${id}/approve`,
|
|
payload
|
|
);
|
|
const data = response.data;
|
|
if (!data.success) throw new Error(data.message);
|
|
return data.data;
|
|
}
|
|
|
|
export async function rejectWorkflowRequest(id: string, payload: WorkflowActionPayload): Promise<WorkflowRequestItem> {
|
|
const response = await apiClient.post<ApiResponse<WorkflowRequestItem>>(
|
|
`/api/workflow/${id}/reject`,
|
|
payload
|
|
);
|
|
const data = response.data;
|
|
if (!data.success) throw new Error(data.message);
|
|
return data.data;
|
|
}
|