refactor(FE-363): Replace LogisticService with LogisticApi instance

This commit is contained in:
rstubryan
2025-12-13 11:51:41 +07:00
parent fdb3e0481a
commit fd2e1f8b96
2 changed files with 22 additions and 46 deletions
@@ -10,7 +10,7 @@ import DateInput from '@/components/input/DateInput';
import { AreaApi } from '@/services/api/master-data'; import { AreaApi } from '@/services/api/master-data';
import { SupplierApi } from '@/services/api/master-data'; import { SupplierApi } from '@/services/api/master-data';
import { ProductApi } from '@/services/api/master-data'; import { ProductApi } from '@/services/api/master-data';
import { LogisticService } from '@/services/api/logistic'; import { LogisticApi } from '@/services/api/logistic';
import Table from '@/components/Table'; import Table from '@/components/Table';
import { ColumnDef } from '@tanstack/react-table'; import { ColumnDef } from '@tanstack/react-table';
import { formatCurrency, formatDate } from '@/lib/helper'; import { formatCurrency, formatDate } from '@/lib/helper';
@@ -38,11 +38,7 @@ const PurchasesPerSupplierTab = () => {
); );
// ===== TABLE FILTER STATE ===== // ===== TABLE FILTER STATE =====
const { const { state: tableFilterState, updateFilter } = useTableFilter({
state: tableFilterState,
updateFilter,
toQueryString: getTableFilterQueryString,
} = useTableFilter({
initial: { initial: {
area_id: '', area_id: '',
supplier_id: '', supplier_id: '',
@@ -158,8 +154,23 @@ const PurchasesPerSupplierTab = () => {
// ===== DATA FETCHING ===== // ===== DATA FETCHING =====
const { data: purchasePerSupplier, isLoading } = useSWR( const { data: purchasePerSupplier, isLoading } = useSWR(
`${LogisticService.basePath}/purchase-supplier${getTableFilterQueryString()}`, () =>
LogisticService.getAllFetcher LogisticApi.getLogisticStockReport(
tableFilterState.area_id ? Number(tableFilterState.area_id) : undefined,
tableFilterState.supplier_id
? Number(tableFilterState.supplier_id)
: undefined,
tableFilterState.product_id
? Number(tableFilterState.product_id)
: undefined,
tableFilterState.received_date || undefined,
tableFilterState.po_date || undefined,
tableFilterState.start_date || undefined,
tableFilterState.end_date || undefined
),
{
revalidateOnFocus: false,
}
); );
const data: LogisticPurchasePerSupplier[] = isResponseSuccess( const data: LogisticPurchasePerSupplier[] = isResponseSuccess(
+3 -38
View File
@@ -2,18 +2,12 @@ import { BaseApiService } from '@/services/api/base';
import { BaseApiResponse } from '@/types/api/api-general'; import { BaseApiResponse } from '@/types/api/api-general';
import { LogisticPurchasePerSupplierReport } from '@/types/api/report/logistic-stock'; import { LogisticPurchasePerSupplierReport } from '@/types/api/report/logistic-stock';
const baseLogisticApi = new BaseApiService< export class LogisticApiService extends BaseApiService<
LogisticPurchasePerSupplierReport,
unknown,
unknown
>('/reports');
export class LogisticApi extends BaseApiService<
LogisticPurchasePerSupplierReport, LogisticPurchasePerSupplierReport,
unknown, unknown,
unknown unknown
> { > {
constructor(basePath: string = '') { constructor(basePath: string) {
super(basePath); super(basePath);
} }
@@ -43,33 +37,4 @@ export class LogisticApi extends BaseApiService<
} }
} }
export const LogisticService = { export const LogisticApi = new LogisticApiService('/reports');
basePath: baseLogisticApi.basePath,
header: baseLogisticApi.header,
getAllFetcher: baseLogisticApi.getAllFetcher.bind(baseLogisticApi),
getSingle: baseLogisticApi.getSingle.bind(baseLogisticApi),
create: baseLogisticApi.create.bind(baseLogisticApi),
update: baseLogisticApi.update.bind(baseLogisticApi),
delete: baseLogisticApi.delete.bind(baseLogisticApi),
customRequest: baseLogisticApi.customRequest.bind(baseLogisticApi),
// Custom method for specific endpoint
getLogisticStockReport: (
area_id?: number,
supplier_id?: number,
product_id?: number,
received_date?: string,
po_date?: string,
start_date?: string,
end_date?: string
) =>
new LogisticApi().getLogisticStockReport(
area_id,
supplier_id,
product_id,
received_date,
po_date,
start_date,
end_date
),
};