feat(FE-212): refactor purchase requisitions services and update item schema for approval process

This commit is contained in:
rstubryan
2025-11-11 13:23:48 +07:00
parent f7b2e3c6f2
commit 21ac73527d
2 changed files with 39 additions and 18 deletions
+30 -9
View File
@@ -8,18 +8,12 @@ import {
import { BaseApiService } from '@/services/api/base';
import { BaseApiResponse } from '@/types/api/api-general';
export const PurchaseRequisitionsApi = new BaseApiService<
export class PurchaseRequisitionsService extends BaseApiService<
Purchase,
CreatePurchaseRequisitionsPayload,
UpdatePurchaseRequisitionsPayload
>('/purchases/requisitions');
export class StaffApprovalService extends BaseApiService<
Purchase,
CreateStaffApprovalRequisitionsPayload,
CreateAcceptApprovalRequisitionsPayload
> {
constructor(basePath: string = '') {
constructor(basePath: string = '/purchases/requisitions') {
super(basePath);
}
@@ -52,6 +46,18 @@ export class StaffApprovalService extends BaseApiService<
},
});
}
}
export const PurchaseRequisitionsApi = new PurchaseRequisitionsService();
export class StaffApprovalService extends BaseApiService<
Purchase,
CreateStaffApprovalRequisitionsPayload,
CreateAcceptApprovalRequisitionsPayload
> {
constructor(basePath: string = '') {
super(basePath);
}
async createStaffApproval(
purchaseRequisitionId: number,
@@ -66,12 +72,23 @@ export class StaffApprovalService extends BaseApiService<
);
}
}
export class AcceptApprovalService extends BaseApiService<
Purchase,
CreateAcceptApprovalRequisitionsPayload,
CreateAcceptApprovalRequisitionsPayload
> {
constructor(basePath: string = '') {
super(basePath);
}
async acceptApproval(
purchaseRequisitionId: number,
payload: CreateAcceptApprovalRequisitionsPayload
): Promise<BaseApiResponse<{ message: string }> | undefined> {
return await this.customRequest<BaseApiResponse<{ message: string }>>(
`${purchaseRequisitionId}/approvals/accept`,
`${purchaseRequisitionId}/approvals/receipts`,
{
method: 'POST',
payload,
@@ -83,3 +100,7 @@ export class StaffApprovalService extends BaseApiService<
export const StaffApprovalApi = new StaffApprovalService(
'/purchases/requisitions'
);
export const AcceptApprovalApi = new AcceptApprovalService(
'/purchases/requisitions'
);