63 lines
2.0 KiB
TypeScript
63 lines
2.0 KiB
TypeScript
import { useRuntimeConfig } from '#app';
|
|
import type { QueuePatient } from '@/types/queue';
|
|
|
|
export const useQueueAPI = () => {
|
|
const config = useRuntimeConfig();
|
|
const verificationApiBase = config.public.verificationApiBaseUrl || 'http://10.10.123.140:8089/api/v1';
|
|
const externalApiBase = config.public.externalApiBaseUrl;
|
|
|
|
const fetchRawLoketPatients = async (loketId: string | number) => {
|
|
try {
|
|
const rawData: any = await $fetch(`${verificationApiBase}/loket/${loketId}`);
|
|
if (rawData.metadata && rawData.metadata.code !== 200) {
|
|
throw new Error(rawData.message || 'API returned error status');
|
|
}
|
|
return rawData.data || [];
|
|
} catch (error: any) {
|
|
throw new Error(`HTTP error! status: ${error.response?.status || error.message}`);
|
|
}
|
|
};
|
|
|
|
const fetchRawClinicPatients = async (clinicId: string | number) => {
|
|
const url = `${externalApiBase}/visit?klinik_id=${clinicId}&limit=500`;
|
|
try {
|
|
const rawResponse: any = await $fetch(url);
|
|
return rawResponse?.data || [];
|
|
} catch (error: any) {
|
|
throw new Error(`HTTP error! status: ${error.response?.status || error.message}`);
|
|
}
|
|
};
|
|
|
|
const updateTicketStatus = async (barcode: string, statuspasien: string, statuspasien2: string, idklinikstatus: string, idklinikstatus2: string) => {
|
|
return await $fetch(`${verificationApiBase}/tiket/update`, {
|
|
method: 'POST',
|
|
body: {
|
|
barcode: barcode || "",
|
|
statuspasien,
|
|
statuspasien2,
|
|
idklinikstatus,
|
|
idklinikstatus2
|
|
}
|
|
});
|
|
};
|
|
|
|
const completeTicketStatus = async (idloket: string, barcode: string, statuspasien: string, idklinikstatus: string) => {
|
|
return await $fetch(`${verificationApiBase}/tiket/selesai`, {
|
|
method: 'POST',
|
|
body: {
|
|
idloket: String(idloket || ""),
|
|
barcode: barcode || "",
|
|
statuspasien,
|
|
idklinikstatus
|
|
}
|
|
});
|
|
};
|
|
|
|
return {
|
|
fetchRawLoketPatients,
|
|
fetchRawClinicPatients,
|
|
updateTicketStatus,
|
|
completeTicketStatus
|
|
};
|
|
};
|