diff --git a/src/components/pages/uniformity/form/UniformityForm.tsx b/src/components/pages/uniformity/form/UniformityForm.tsx index b1387b70..ec8314c3 100644 --- a/src/components/pages/uniformity/form/UniformityForm.tsx +++ b/src/components/pages/uniformity/form/UniformityForm.tsx @@ -227,20 +227,12 @@ const UniformityForm = ({ return; } - const formData = new FormData(); - formData.append('date', values.date); - formData.append( - 'project_flock_kandang_id', - projectFlockKandangId.toString() - ); + const payload: VerifyUniformityPayload = { + project_flock_kandang_id: projectFlockKandangId, + files: values.files as File, + }; - if (values.files) { - formData.append('file', values.files); - } - - const res = await UniformityApi.create( - formData as unknown as VerifyUniformityPayload - ); + const res = await UniformityApi.verifyUniformity(payload); if (isResponseError(res)) { setUniformityFormErrorMessage(res.message); diff --git a/src/services/api/uniformity.ts b/src/services/api/uniformity.ts index aa0b765e..386c1814 100644 --- a/src/services/api/uniformity.ts +++ b/src/services/api/uniformity.ts @@ -3,12 +3,13 @@ import { BaseApiResponse } from '@/types/api/api-general'; import { VerifyUniformityPayload, Uniformity, + CreateUniformityPayload, } from '@/types/api/uniformity/uniformity'; export class UniformityApiService extends BaseApiService< Uniformity, - VerifyUniformityPayload, - unknown + CreateUniformityPayload, + VerifyUniformityPayload > { constructor(basePath: string) { super(basePath); @@ -19,7 +20,7 @@ export class UniformityApiService extends BaseApiService< } async createUniformity( - payload: VerifyUniformityPayload + payload: CreateUniformityPayload ): Promise | undefined> { const formData = new FormData(); formData.append('date', payload.date); @@ -32,12 +33,29 @@ export class UniformityApiService extends BaseApiService< formData.append('file', payload.files); } - return await this.create(formData as unknown as VerifyUniformityPayload); + return await this.create(formData as unknown as CreateUniformityPayload); + } + + async verifyUniformity( + payload: VerifyUniformityPayload + ): Promise | undefined> { + const formData = new FormData(); + formData.append( + 'project_flock_kandang_id', + payload.project_flock_kandang_id.toString() + ); + + if (payload.files) { + formData.append('file', payload.files); + } + + return await this.customRequest>('/verify', { + method: 'POST', + payload: formData as unknown as Record, + }); } } -// export const UniformityApi = new UniformityApiService('uniformity'); - export const UniformityApi = new UniformityApiService( 'http://localhost:4010/api/uniformity' ); diff --git a/src/types/api/uniformity/uniformity.d.ts b/src/types/api/uniformity/uniformity.d.ts index d59520cd..5f889dda 100644 --- a/src/types/api/uniformity/uniformity.d.ts +++ b/src/types/api/uniformity/uniformity.d.ts @@ -10,10 +10,16 @@ export type Uniformity = BaseMetadata & { week: number; status: 'CREATED' | 'APPROVED' | 'REJECTED'; uniformity: number; + date?: string; }; -export type VerifyUniformityPayload = { +export type CreateUniformityPayload = { date: string; project_flock_kandang_id: number; files: File; }; + +export type VerifyUniformityPayload = { + project_flock_kandang_id: number; + files: File; +};