import { removeTokenHead } from "@/helper"; import api from "./api"; export const request = { sendCode: (mobile, captcha_token) => api.post( "api/v1/user/send-code", { mobile, captcha_token, }, removeTokenHead ), getToken: (grant_type, client_id, client_secret, uuid, code, scope = "nobat724") => { const formData = new URLSearchParams(); formData.append("grant_type", grant_type); formData.append("client_id", client_id); formData.append("client_secret", client_secret); formData.append("uuid", uuid); formData.append("code", code); formData.append("scope", scope); return api.post("oauth/token", formData, { headers: { "Content-Type": "application/x-www-form-urlencoded", Authorization: "", }, }); }, postRefreshToken: (formData) => { return api.post("oauth/token", formData, { headers: { "Content-Type": "application/x-www-form-urlencoded", Authorization: "", }, }); }, getUserProfile: (uuid) => api.get(`/api/v1/user-profile/${uuid}`, { requireAuth: true }), postUserProfile: (data) => api.post("api/v1/user-profile", data, { requireAuth: true }), patchUserProfile: (data, uuid) => api.patch(`api/v1/user-profile/${uuid}`, data, { requireAuth: true }), getUserInfo: (headers) => api.get("oauth/userinfo", { ...headers, requireAuth: true }), getInsuranceType: () => api.get(`api/v1/insurances?type=basic`, { requireAuth: true }), getSupplementaryInsurance: () => api.get(`api/v1/insurances?type=supplementary`, { requireAuth: true }), getDoctors: (params) => api.get("api/v1/doctors", { params, headers: { Authorization: "", }, }), getAppointmentWeeklySchedule: (uuid) => api.get(`api/v1/appointment-settings/weekly-schedule/${uuid}`), postAppointmentWeeklySchedule: () => api.post("api/v1/appointment-settings/weekly-schedule/"), patchAppointmentWeeklySchedule: (uuid) => api.patch(`api/v1/appointment-settings/weekly-schedule/${uuid}`), deleteAppointmentWeeklySchedule: (uuid) => api.delete(`api/v1/appointment-settings/weekly-schedule/${uuid}`), getAppointmentSlots: (doctor_uuid, date) => api.get( `api/v1/appointment-slots?doctor_uuid=${doctor_uuid}&date=${date}`, removeTokenHead ), getMonthAvailability: (doctor_uuid, year, month) => api.get(`api/v1/appointment-settings/month-availability/${doctor_uuid}`, { params: { year, month }, ...removeTokenHead, }), postAppointment: (data) => api.post(`api/v1/appointment`, data, { requireAuth: true }), getMyAppointments: (userId, params) => api.get(`api/v1/appointment/my-appointments/${userId}`, { params, requireAuth: true }), postAppointmentPayment: (data) => api.post(`api/v1/payment/appointment`, data, { requireAuth: true }), getPayment: (uuid) => api.get(`api/v1/payment/${uuid}`, { requireAuth: true }), getMyPayments: (userId, params) => api.get(`api/v1/payment/my-payments/${userId}`, { params, requireAuth: true }), postDoctor: (data) => api.post("api/v1/doctor", data), postImageUpload: (data) => api.post("file/upload/clinic_pro/doctor/field_image", data, { headers: { "Content-Type": "application/octet-stream", "Content-Disposition": `file; filename="${data.name}"`, "X-CSRF-Token": "", }, }), getDoctorServices: () => api.get("api/v1/categorys/doctor_services", removeTokenHead), postDoctorComment: (data) => api.post("api/v1/clinicpro/comment", data), getDoctorRate: (uuid) => api.get(`api/v1/clinicpro/rate/${uuid}`), postDoctorRate: (data) => api.post("api/v1/clinicpro/rate", data), patchDoctorRate: (data, uuid) => api.patch(`api/v1/clinicpro/rate/${uuid}`, data), postCommentsLike: (data) => api.post("/api/v1/clinicpro/like", data), getClinicList: (params) => api.get("/api/v1/clinics", { params, headers: { Authorization: "", }, }), getDoctorAddress: (location_id) => api.get(`api/v1/clinic-pro/doctor-address/${location_id}`, removeTokenHead), getBlogs: (params) => api.get("api/v1/blogs", { params, headers: { Authorization: "", }, }), getBlogTags: (params) => api.get("api/v1/categorys/tag", { params, headers: { Authorization: "", }, }), getTopBlogs: () => api.get("api/v1/blogs/top", { headers: { Authorization: "", }, }), getSingleBlog: (uuid) => api.get(`api/v1/blog/${uuid}`, { headers: { Authorization: "", }, }), getRepresentationInfo: (uuid) => api.get(`api/v1/representation/${uuid}`, { requireAuth: true }), getRepresentationDashboardMonthly: (uuid, year, month) => api.get(`api/v1/representation/${uuid}/dashboard/monthly`, { params: { year, month }, requireAuth: true, }), getRepresentationDashboardYearly: (uuid, year) => api.get(`api/v1/representation/${uuid}/dashboard/yearly`, { params: { year }, requireAuth: true, }), };