- Login now overwrites the uuid cookie with the real user uuid (was the OTP uuid), so server-side profile/dashboard fetches resolve. - getMyAppointments → /api/v1/appointments/user (patient's own bookings; /my/appointments is role-scoped and empty for plain users), read from the double-nested data.data. - getMyPayments → /api/v1/my/payments (new endpoint), read paginated data + meta.totalPages. - Drop the userId path param (both endpoints derive the user from token). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
144 lines
5.0 KiB
JavaScript
144 lines
5.0 KiB
JavaScript
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: (params) => api.get(`api/v1/appointments/user`, { params, requireAuth: true }),
|
|
postAppointmentPayment: (data) =>
|
|
api.post(`api/v1/payment/appointment`, data, { requireAuth: true }),
|
|
getPaymentConfig: () => api.get(`api/v1/payment/config`, { requireAuth: true }),
|
|
getPayment: (uuid) => api.get(`api/v1/payment/${uuid}`, { requireAuth: true }),
|
|
getMyPayments: (params) => api.get(`api/v1/my/payments`, { 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,
|
|
}),
|
|
};
|