refactor(FE-88): memisahkan file api project flock & penyesuaian tipe data dan paylod dengan BE

This commit is contained in:
randy-ar
2025-11-12 09:04:23 +07:00
parent f63d3d3870
commit 5dccaf40cb
13 changed files with 888 additions and 211 deletions
-10
View File
@@ -1,9 +1,4 @@
import { BaseApiService } from '@/services/api/base';
import {
CreateProjectFlockPayload,
ProjectFlock,
UpdateProjectFlockPayload,
} from '@/types/api/production/project-flock';
import {
CreateRecordingPayload,
Recording,
@@ -11,11 +6,6 @@ import {
} from '@/types/api/production/recording';
import { ProjectFlockKandang } from '@/types/api/production/project-flock-kandang';
export const ProjectFlockApi = new BaseApiService<
ProjectFlock,
CreateProjectFlockPayload,
UpdateProjectFlockPayload
>('/production/project-flocks');
export const ProjectFlockKandangApi = new BaseApiService<
ProjectFlockKandang,
unknown,
+43
View File
@@ -0,0 +1,43 @@
import {
Chickin,
CreateChickinPayload,
UpdateChickinPayload,
} from '@/types/api/production/chickin';
import { BaseApiService } from '../base';
import { BaseApiResponse } from '@/types/api/api-general';
import { httpClient } from '@/services/http/client';
export class ChickinService extends BaseApiService<
Chickin,
CreateChickinPayload,
UpdateChickinPayload
> {
constructor(basePath: string = '/production/chickins') {
super(basePath);
}
/**
* Approve single marketing data
*/
async singleApproval(
id: number,
action: 'APPROVED' | 'REJECTED'
): Promise<BaseApiResponse<{ message: string }> | undefined> {
try {
const path = `${this.basePath}/approvals`;
return await httpClient<BaseApiResponse<{ message: string }>>(path, {
method: 'POST',
body: {
action: action,
approvable_ids: [id],
notes: `${action} chickin ${id}`,
},
});
} catch (error) {
console.error('Error approve chickin:', error);
return undefined;
}
}
}
export const ChickinApi = new ChickinService('/production/chickins');