260324:2133 Refactor correspondence & rfa
CI / CD Pipeline / build (push) Failing after 17m3s
CI / CD Pipeline / deploy (push) Has been skipped

This commit is contained in:
admin
2026-03-24 21:33:59 +07:00
parent 42fc9fa502
commit aa82b890a5
42 changed files with 2617 additions and 233 deletions
+26
View File
@@ -0,0 +1,26 @@
import apiClient from '@/lib/api/client';
export interface UploadedAttachment {
id: number;
uuid: string;
tempId: string;
originalFilename: string;
mimeType: string;
fileSize: number;
isTemporary: boolean;
}
export const filesApi = {
upload: async (file: File): Promise<UploadedAttachment> => {
const formData = new FormData();
formData.append('file', file);
const response = await apiClient.post('/files/upload', formData, {
headers: { 'Content-Type': 'multipart/form-data' },
});
return response.data;
},
uploadMany: async (files: File[]): Promise<UploadedAttachment[]> => {
return Promise.all(files.map((f) => filesApi.upload(f)));
},
};
@@ -44,6 +44,16 @@ export const circulationService = {
return response.data;
},
/**
* ดึงรายการใบเวียนของ correspondence (by correspondence UUID)
*/
getByCorrespondenceUuid: async (correspondenceUuid: string) => {
const response = await apiClient.get('/circulations', {
params: { correspondenceUuid, limit: 50 },
});
return response.data;
},
/**
* ลบ/ยกเลิกใบเวียน
*/
@@ -5,7 +5,7 @@ import { CreateCorrespondenceDto } from '@/types/dto/correspondence/create-corre
// Import DTO ใหม่
import { SubmitCorrespondenceDto } from '@/types/dto/correspondence/submit-correspondence.dto';
import { WorkflowActionDto } from '@/types/dto/correspondence/workflow-action.dto';
import { AddReferenceDto, RemoveReferenceDto } from '@/types/dto/correspondence/add-reference.dto';
import { AddReferenceDto } from '@/types/dto/correspondence/add-reference.dto';
export const correspondenceService = {
// ... (getAll, getById, create, update, delete เดิมคงไว้) ...
@@ -35,6 +35,13 @@ export const correspondenceService = {
return response.data;
},
cancel: async (uuid: string, reason: string) => {
const response = await apiClient.delete(`/correspondences/${uuid}`, {
data: { reason },
});
return response.data;
},
// --- 🔥 New Methods ---
/**
@@ -53,6 +60,14 @@ export const correspondenceService = {
return response.data;
},
/**
* ดึงรายการเอกสารอ้างอิง
*/
getReferences: async (uuid: string) => {
const response = await apiClient.get(`/correspondences/${uuid}/references`);
return response.data;
},
/**
* เพิ่มเอกสารอ้างอิง
*/
@@ -62,15 +77,36 @@ export const correspondenceService = {
},
/**
* ลบเอกสารอ้างอิง
* ลบเอกสารอ้างอิง (ใช้ path param ตาม backend: DELETE /:uuid/references/:targetUuid)
*/
removeReference: async (uuid: string, data: RemoveReferenceDto) => {
// ใช้ DELETE method โดยส่ง body ไปด้วย (axios รองรับผ่าน config.data)
const response = await apiClient.delete(`/correspondences/${uuid}/references`, {
data: data,
});
removeReference: async (uuid: string, targetUuid: string) => {
const response = await apiClient.delete(`/correspondences/${uuid}/references/${targetUuid}`);
return response.data;
},
/**
* ดึง Tags ของ correspondence
*/
getTags: async (uuid: string) => {
const response = await apiClient.get(`/correspondences/${uuid}/tags`);
return response.data;
},
/**
* เพิ่ม Tag ให้ correspondence
*/
addTag: async (uuid: string, tagId: number) => {
const response = await apiClient.post(`/correspondences/${uuid}/tags/${tagId}`);
return response.data;
},
/**
* ลบ Tag ออกจาก correspondence
*/
removeTag: async (uuid: string, tagId: number) => {
const response = await apiClient.delete(`/correspondences/${uuid}/tags/${tagId}`);
return response.data;
},
/**
* Preview Document Number
*/