feat(FE-316): Add verifyUniformity and split payload types

This commit is contained in:
rstubryan
2025-12-27 19:09:03 +07:00
parent 5f68c05acc
commit ec8ae7561d
3 changed files with 36 additions and 20 deletions
@@ -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);
+24 -6
View File
@@ -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<BaseApiResponse<Uniformity> | 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<BaseApiResponse<Uniformity> | 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<BaseApiResponse<Uniformity>>('/verify', {
method: 'POST',
payload: formData as unknown as Record<string, unknown>,
});
}
}
// export const UniformityApi = new UniformityApiService('uniformity');
export const UniformityApi = new UniformityApiService(
'http://localhost:4010/api/uniformity'
);
+7 -1
View File
@@ -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;
};