2026-06-28 16:46:42 +03:30
|
|
|
import { apiClient } from './client';
|
|
|
|
|
import type {
|
2026-06-28 17:49:40 +03:30
|
|
|
CasesFilterOptions,
|
2026-07-13 15:47:32 +03:30
|
|
|
AssignableTaskStaff,
|
2026-06-28 16:46:42 +03:30
|
|
|
LabCaseDetail,
|
|
|
|
|
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;
|
|
|
|
|
},
|
|
|
|
|
|
2026-06-28 17:49:40 +03:30
|
|
|
listFilterOptions: async (): Promise<{ success: boolean; data: CasesFilterOptions }> => {
|
|
|
|
|
const response = await apiClient.get('/cases/filter-options');
|
|
|
|
|
return response.data;
|
|
|
|
|
},
|
|
|
|
|
|
2026-07-13 15:47:32 +03:30
|
|
|
listAssignableStaff: async (): Promise<{ success: boolean; data: AssignableTaskStaff[] }> => {
|
|
|
|
|
const response = await apiClient.get('/cases/assignable-staff');
|
|
|
|
|
return response.data;
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
assignTask: async (
|
|
|
|
|
caseId: string,
|
|
|
|
|
taskId: string,
|
|
|
|
|
assigneeUserId: string | null,
|
|
|
|
|
): Promise<{ success: boolean; data: LabCaseDetail }> => {
|
|
|
|
|
const response = await apiClient.patch(`/cases/${caseId}/tasks/${taskId}/assign`, {
|
|
|
|
|
assigneeUserId,
|
|
|
|
|
});
|
|
|
|
|
return response.data;
|
|
|
|
|
},
|
|
|
|
|
|
2026-07-08 02:53:47 +03:30
|
|
|
setCaseImportant: async (
|
2026-06-28 16:46:42 +03:30
|
|
|
caseId: string,
|
2026-07-07 15:31:09 +03:30
|
|
|
isImportant: boolean,
|
2026-07-08 02:53:47 +03:30
|
|
|
): Promise<{ success: boolean; data: LabCaseDetail }> => {
|
|
|
|
|
const response = await apiClient.patch(`/cases/${caseId}/important`, { isImportant });
|
2026-06-28 16:46:42 +03:30
|
|
|
return response.data;
|
|
|
|
|
},
|
2026-07-07 18:43:10 +03:30
|
|
|
|
|
|
|
|
getAttachmentFileBlob: async (caseId: string, attachmentId: string): Promise<Blob> => {
|
|
|
|
|
const response = await apiClient.get(`/cases/${caseId}/attachments/${attachmentId}/file`, {
|
|
|
|
|
responseType: 'blob',
|
|
|
|
|
timeout: 120_000,
|
|
|
|
|
});
|
|
|
|
|
return response.data;
|
|
|
|
|
},
|
2026-06-28 16:46:42 +03:30
|
|
|
};
|