37 lines
1.1 KiB
TypeScript
37 lines
1.1 KiB
TypeScript
|
|
import { apiClient } from './client';
|
||
|
|
import type {
|
||
|
|
AssignableMember,
|
||
|
|
LabCaseDetail,
|
||
|
|
LabCaseTask,
|
||
|
|
ListLabCasesParams,
|
||
|
|
PaginatedLabCases,
|
||
|
|
} from '@/types/cases';
|
||
|
|
|
||
|
|
export const casesApi = {
|
||
|
|
list: async (
|
||
|
|
params: ListLabCasesParams = {},
|
||
|
|
): Promise<{ success: boolean; data: PaginatedLabCases }> => {
|
||
|
|
const response = await apiClient.get('/cases', { params });
|
||
|
|
return response.data;
|
||
|
|
},
|
||
|
|
|
||
|
|
getOne: async (id: string): Promise<{ success: boolean; data: LabCaseDetail }> => {
|
||
|
|
const response = await apiClient.get(`/cases/${id}`);
|
||
|
|
return response.data;
|
||
|
|
},
|
||
|
|
|
||
|
|
listAssignableMembers: async (): Promise<{ success: boolean; data: AssignableMember[] }> => {
|
||
|
|
const response = await apiClient.get('/cases/assignable-members');
|
||
|
|
return response.data;
|
||
|
|
},
|
||
|
|
|
||
|
|
updateTask: async (
|
||
|
|
caseId: string,
|
||
|
|
taskId: string,
|
||
|
|
payload: { assigneeUserId?: string | null; status?: LabCaseTask['status'] },
|
||
|
|
): Promise<{ success: boolean; data: LabCaseTask }> => {
|
||
|
|
const response = await apiClient.patch(`/cases/${caseId}/tasks/${taskId}`, payload);
|
||
|
|
return response.data;
|
||
|
|
},
|
||
|
|
};
|