health-apps-cms/src/services/clinics.service.js

235 lines
6.5 KiB
JavaScript

import { axiosInstance } from "../config/api";
import { CLINIC_TYPE } from "../constants";
import { clinicsData, registeredClinicsData } from "../mock/clinics";
export const getClinics = (params) => {
let searchParams = new URLSearchParams();
searchParams.append("limit", params?.pagination?.pageSize ?? 10);
searchParams.append("page", params?.pagination.pageIndex + 1 ?? 1);
searchParams.append("filter_type", params?.type ?? CLINIC_TYPE.REGISTERED);
searchParams.append("search", params?.globalFilter ?? "");
let url = `/clinics/?${searchParams.toString()}`;
return new Promise((resolve, reject) => {
axiosInstance
.get(url)
.then((response) => resolve(response))
.catch((err) => reject(err));
});
};
export const getLatestClinicId = () => {
const url = `/auth/clinic/latest-id`;
return new Promise((resolve, reject) => {
axiosInstance
.get(url)
.then((response) => resolve(response))
.catch((err) => reject(err));
});
};
export const getClinicsById = (id) => {
const url = `/clinics/${id}`;
return new Promise((resolve, reject) => {
axiosInstance
.get(url)
.then((response) => resolve(response))
.catch((err) => reject(err));
});
};
export const generatePaymentSession = () => {
const url = `/stripe/create-payment-session`;
return new Promise((resolve, reject) => {
axiosInstance
.post(url)
.then((response) => resolve(response))
.catch((err) => reject(err));
});
};
export const updateClinicStatus = (data) => {
const url = `/admin/clinic/status`;
return new Promise((resolve, reject) => {
axiosInstance
.put(url, data)
.then((response) => resolve(response))
.catch((err) => reject(err));
});
};
export const getClinicDocs = (id) => {
const url = `/clinics/verified-files/${id}`;
return new Promise((resolve, reject) => {
axiosInstance
.get(url)
.then((response) => resolve(response))
.catch((err) => reject(err));
});
};
export const updateClinicDocs = (id, data) => {
const url = `/clinics/${id}`;
return new Promise((resolve, reject) => {
axiosInstance
.put(url, data)
.then((response) => resolve(response))
.catch((err) => reject(err));
});
};
export const getClinicsDashboardStatsById = () => {
const url = `/companies/dashboard-stats`;
return new Promise((resolve, reject) => {
axiosInstance
.get(url)
.then((response) => resolve(response))
.catch((err) => reject(err));
});
};
export const createClinicOffer = (data) => {
const url = `/admin/clinic/offer`;
return new Promise((resolve, reject) => {
axiosInstance
.post(url, data)
.then((response) => resolve(response))
.catch((err) => reject(err));
});
};
export const getClinicOffer = (params) => {
let searchParams = new URLSearchParams();
searchParams.append("limit", params?.pagination?.pageSize ?? 10);
searchParams.append("page", params?.pagination.pageIndex + 1 ?? 1);
searchParams.append("search", params?.globalFilter ?? "");
const url = `/admin/clinic/offers?${searchParams.toString()}`;
return new Promise((resolve, reject) => {
axiosInstance
.get(url)
.then((response) => resolve(response))
.catch((err) => reject(err));
});
};
export const updateClinicOffer = (data, id) => {
const url = `/admin/clinic/offer/${id}`;
return new Promise((resolve, reject) => {
axiosInstance
.put(url, data)
.then((response) => resolve(response))
.catch((err) => reject(err));
});
};
export const deleteClinicOffer = (id) => {
const url = `/admin/clinic/offer/${id}`;
return new Promise((resolve, reject) => {
axiosInstance
.delete(url)
.then((response) => resolve(response))
.catch((err) => reject(err));
});
};
export const getClinicDoctors = (params) => {
let searchParams = new URLSearchParams();
searchParams.append("limit", params?.pagination?.pageSize ?? 10);
searchParams.append("page", params?.pagination.pageIndex + 1 ?? 1);
searchParams.append("search", params?.globalFilter ?? "");
const url = `/clinic-doctors?${searchParams.toString()}`;
return new Promise((resolve, reject) => {
axiosInstance
.get(url)
.then((response) => resolve(response))
.catch((err) => reject(err));
});
};
export const createDoctor = (data) => {
const url = `/clinic-doctors/`;
return new Promise((resolve, reject) => {
axiosInstance
.post(url, data)
.then((response) => resolve(response))
.catch((err) => reject(err));
});
};
export const updateDoctor = (data, id) => {
const url = `/clinic-doctors/${id}`;
return new Promise((resolve, reject) => {
axiosInstance
.put(url, data)
.then((response) => resolve(response))
.catch((err) => reject(err));
});
};
export const deleteDoctor = (id) => {
const url = `/clinic-doctors/${id}`;
return new Promise((resolve, reject) => {
axiosInstance
.delete(url)
.then((response) => resolve(response))
.catch((err) => reject(err));
});
};
export const getCallTranscripts = (params) => {
console.log(params);
let searchParams = new URLSearchParams();
searchParams.append("limit", params?.pagination?.pageSize ?? 10);
searchParams.append("page", params?.pagination.pageIndex + 1 ?? 1);
searchParams.append("search", params?.globalFilter ?? "");
if(params?.startDate){
searchParams.append("startDate", params.startDate.toISOString());
}
if(params?.endDate){
searchParams.append("endDate", params.endDate.toISOString());
}
if (params?.sortingString) {
const sortingParams = new URLSearchParams(params.sortingString);
sortingParams.forEach((value, key) => {
searchParams.append(key, value);
});
}
const url = `/call-transcripts?${searchParams.toString()}`;
return new Promise((resolve, reject) => {
axiosInstance
.get(url)
.then((response) => resolve(response))
.catch((err) => reject(err));
});
};
export const downloadCallTranscript = (id) => {
const url = `/call-transcripts/${id}`;
return new Promise((resolve, reject) => {
axiosInstance
.get(url)
.then((response) => resolve(response))
.catch((err) => reject(err));
});
};
export const downloadBulkCallTranscripts = (data) => {
const url = `/call-transcripts/bulk-download`;
return new Promise((resolve, reject) => {
axiosInstance
.post(url, data, {
responseType: "blob",
transitional: {
forcedJSONParsing: false,
},
})
.then((response) => resolve(response))
.catch((err) => reject(err));
});
};