Commit 84c0012d authored by Rais Aryaguna's avatar Rais Aryaguna

fix: Correct endpoint paths for faktur_keterangan and faktur_idtambahan

parent cf7f44f4
import type { SWRConfiguration } from 'swr'; import { useQuery, type UseQueryOptions } from '@tanstack/react-query';
import type { AxiosError } from 'axios';
import useSWR from 'swr';
import { useMemo } from 'react';
import { fetcher, endpoints } from 'src/lib/axios-ctas-box'; import { fetcher, endpoints } from 'src/lib/axios-ctas-box';
// ----------------------------------------------------------------------
const swrOptions: SWRConfiguration = { interface ApiResponse<T> {
revalidateIfStale: false, status: string;
revalidateOnFocus: false, message?: string;
revalidateOnReconnect: false, data: T;
}; }
// ---------------------------------------------------------------------- interface KodeNegara {
kode: string;
nama: string;
}
interface KodeNegaraResponse {
data: KodeNegara[];
}
export function useKodeNegara() { interface UseKodeNegaraReturn {
const url = endpoints.masterData.kodeNegara; kodeNegara: KodeNegara[];
kodeNegaraLoading: boolean;
kodeNegaraError: AxiosError | null;
}
interface QueryParams {
[key: string]: any;
}
const queryOptions = {
refetchOnWindowFocus: false,
refetchOnReconnect: false,
retry: 1,
} satisfies Omit<UseQueryOptions, 'queryKey' | 'queryFn'>;
const validateResponse = <T>(response: ApiResponse<T>): T => {
if (response.status === 'fail' || response.status === 'error' || response.status === '0') {
throw new Error(
response.message || 'System tidak dapat memenuhi permintaan, coba beberapa saat lagi'
);
}
return response.data;
};
const { data, isLoading, error, isValidating } = useSWR<{ const {
data: { kode: string; nama: string }[]; kodeNegara,
}>(url, fetcher, { services,
...swrOptions, goods,
kop_all,
kop_bpnr,
kop_bpsp,
kop_bpu,
faktur_keterangan,
faktur_idtambahan,
satuan,
} = endpoints.masterData;
export function useKodeNegara(): UseKodeNegaraReturn {
const { data, isLoading, error } = useQuery<KodeNegaraResponse, AxiosError>({
queryKey: ['kodeNegara'],
queryFn: async () => {
const response = await fetcher<ApiResponse<KodeNegaraResponse>>(kodeNegara);
return validateResponse(response);
},
...queryOptions,
}); });
const memoizedValue = useMemo( return {
() => ({
kodeNegara: data?.data || [], kodeNegara: data?.data || [],
kodeNegaraLoading: isLoading, kodeNegaraLoading: isLoading,
kodeNegaraError: error, kodeNegaraError: error,
kodeNegaraValidating: isValidating, };
kodeNegaraEmpty: !isLoading && !data?.data.length, }
}),
[data, error, isLoading, isValidating] // ----------------------------------------------------------------------
);
return memoizedValue; export function useServices(params?: QueryParams) {
const { data, isLoading, error } = useQuery<any, AxiosError>({
queryKey: ['services', params],
queryFn: async () => {
const response = await fetcher<ApiResponse<any>>(services);
return validateResponse(response);
},
...queryOptions,
});
return {
services: data,
servicesLoading: isLoading,
servicesError: error,
};
} }
// const getServices = async (params) => { // ----------------------------------------------------------------------
// const response = await axiosBupot.get('/mst_services', {
// params, export function useGoods(params?: QueryParams) {
// }); const { data, isLoading, error } = useQuery<any, AxiosError>({
queryKey: ['goods', params],
// const body = response.data; queryFn: async () => {
const response = await fetcher<ApiResponse<any>>(goods);
// if ( return validateResponse(response);
// body.status === 'fail' || },
// body.status === 'error' || ...queryOptions,
// body.status === '0' || });
// response.status !== 200
// ) { return {
// throw new Error(body.message || 'System tidak dapat memenuhi permintaan, coba beberapa saat lagi'); goods: data,
// } goodsLoading: isLoading,
goodsError: error,
// return body.data; };
// }; }
// const getGoods = async (params) => { // ----------------------------------------------------------------------
// const response = await axiosBupot.get('/mst_goods', {
// params, export function useSatuan(params?: QueryParams) {
// }); const { data, isLoading, error } = useQuery<any, AxiosError>({
queryKey: ['satuan', params],
// const body = response.data; queryFn: async () => {
const response = await fetcher<ApiResponse<any>>(satuan);
// if ( return validateResponse(response);
// body.status === 'fail' || },
// body.status === 'error' || ...queryOptions,
// body.status === '0' || });
// response.status !== 200
// ) { return {
// throw new Error(body.message || 'System tidak dapat memenuhi permintaan, coba beberapa saat lagi'); satuan: data,
// } satuanLoading: isLoading,
satuanError: error,
// return body.data; };
// }; }
// const getSatuan = async (params) => { // ----------------------------------------------------------------------
// const response = await axiosBupot.get('/mst_satuan', {
// params, interface Penandatangan {
// }); // Define properties based on your API response
[key: string]: any;
// const body = response.data; }
// if ( export function usePenandatangan() {
// body.status === 'fail' || const { data, isLoading, error } = useQuery<Penandatangan, AxiosError>({
// body.status === 'error' || queryKey: ['penandatangan'],
// body.status === '0' || queryFn: async () => {
// response.status !== 200 const response = await fetcher<ApiResponse<Penandatangan>>('/signer');
// ) {
// throw new Error(body.message || 'System tidak dapat memenuhi permintaan, coba beberapa saat lagi'); if (response.status === 'error') {
// } throw new Error(response.message);
}
// return body.data;
// }; return response.data;
},
// const getPenandatangan = async () => { ...queryOptions,
// const { });
// data: { status: statusRes, message, data },
// } = await axiosBupot.get('/signer'); return {
penandatangan: data,
// if (statusRes === 'error') { penandatanganLoading: isLoading,
// throw new Error(message); penandatanganError: error,
// } };
}
// return data;
// }; // ----------------------------------------------------------------------
// const getKodeObjekPajakBpnr = async (params) => { type KodeObjekPajakType = 'bpnr' | 'bpu' | 'bpsp' | 'all';
// const response = await axiosBupot.get('/mst_kop_bpnr', {
// params, const KODE_OBJEK_PAJAK_ENDPOINTS: Record<KodeObjekPajakType, string> = {
// }); bpnr: kop_bpnr,
bpu: kop_bpu,
// const body = response.data; bpsp: kop_bpsp,
all: kop_all,
// if ( } as const;
// body.status === 'fail' ||
// body.status === 'error' || export function useKodeObjekPajak(type: KodeObjekPajakType, params?: QueryParams) {
// body.status === '0' || const { data, isLoading, error } = useQuery<any, AxiosError>({
// response.status !== 200 queryKey: ['kodeObjekPajak', type, params],
// ) { queryFn: async () => {
// throw new Error(body.message || 'System tidak dapat memenuhi permintaan, coba beberapa saat lagi'); const endpoint = KODE_OBJEK_PAJAK_ENDPOINTS[type];
// } const response = await fetcher<ApiResponse<any>>(endpoint);
// return body.data; // Endpoint 'all' mengembalikan response utuh, bukan hanya data
// }; return type === 'all' ? response : validateResponse(response);
},
// const getKodeObjekPajakBpu = async (params) => { ...queryOptions,
// const response = await axiosBupot.get('/mst_kop_bpu', { });
// params,
// }); return {
kodeObjekPajak: data,
// const body = response.data; kodeObjekPajakLoading: isLoading,
kodeObjekPajakError: error,
// if ( };
// body.status === 'fail' || }
// body.status === 'error' ||
// body.status === '0' || // ----------------------------------------------------------------------
// response.status !== 200
// ) { export function useKeteranganTambahan(params?: QueryParams) {
// throw new Error(body.message || 'System tidak dapat memenuhi permintaan, coba beberapa saat lagi'); const { data, isLoading, error } = useQuery<any, AxiosError>({
// } queryKey: ['keteranganTambahan', params],
queryFn: async () => {
// return body.data; const response = await fetcher<ApiResponse<any>>(faktur_keterangan);
// }; return validateResponse(response);
},
// const getKodeObjekPajakBpsp = async (params) => { ...queryOptions,
// const response = await axiosBupot.get('/mst_kop_bpsp', { });
// params,
// }); return {
keteranganTambahan: data,
// const body = response.data; keteranganTambahanLoading: isLoading,
keteranganTambahanError: error,
// if ( };
// body.status === 'fail' || }
// body.status === 'error' ||
// body.status === '0' || // ----------------------------------------------------------------------
// response.status !== 200
// ) { export function useIdKeteranganTambahan(params?: QueryParams) {
// throw new Error(body.message || 'System tidak dapat memenuhi permintaan, coba beberapa saat lagi'); const { data, isLoading, error } = useQuery<any, AxiosError>({
// } queryKey: ['idKeteranganTambahan', params],
queryFn: async () => {
// return body.data; const response = await fetcher<ApiResponse<any>>(faktur_idtambahan);
// }; return validateResponse(response);
},
// const getAllKodeObjekPajak = async (params) => { ...queryOptions,
// const response = await axiosBupot.get('/mst_kop_all', { });
// params,
// }); return {
idKeteranganTambahan: data,
// const body = response.data; idKeteranganTambahanLoading: isLoading,
idKeteranganTambahanError: error,
// if ( };
// body.status === 'fail' || }
// body.status === 'error' ||
// body.status === '0' ||
// response.status !== 200
// ) {
// throw new Error(body.message || 'System tidak dapat memenuhi permintaan, coba beberapa saat lagi');
// }
// return body;
// };
// const getKeteranganTambahan = async (params) => {
// const response = await axiosBupot.get('/mst_faktur_keterangan', {
// params,
// });
// const body = response.data;
// if (
// body.status === 'fail' ||
// body.status === 'error' ||
// body.status === '0' ||
// response.status !== 200
// ) {
// throw new Error(body.message || 'System tidak dapat memenuhi permintaan, coba beberapa saat lagi');
// }
// return body.data;
// };
// const getIdKeteranganTambahan = async (params) => {
// const response = await axiosBupot.get('/mst_faktur_idtambahan', {
// params,
// });
// const body = response.data;
// if (
// body.status === 'fail' ||
// body.status === 'error' ||
// body.status === '0' ||
// response.status !== 200
// ) {
// throw new Error(body.message || 'System tidak dapat memenuhi permintaan, coba beberapa saat lagi');
// }
// return body.data;
// };
...@@ -89,7 +89,7 @@ export const endpoints = { ...@@ -89,7 +89,7 @@ export const endpoints = {
kop_bpu: '/sandbox/mst_kop_bpu', kop_bpu: '/sandbox/mst_kop_bpu',
kop_bpsp: '/sandbox/mst_kop_bpsp', kop_bpsp: '/sandbox/mst_kop_bpsp',
kop_all: '/sandbox/mst_kop_all', kop_all: '/sandbox/mst_kop_all',
faktur_keterangan: '/sandbox/mst_faktur_kode', faktur_keterangan: '/sandbox/mst_faktur_keterangan',
faktur_idtambahan: '/sandbox/mst_faktur_keterangan', faktur_idtambahan: '/sandbox/mst_faktur_idtambahan',
}, },
} as const; } as const;
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment