"use strict"; const common_vendor = require("../common/vendor.js"); const API_ORIGIN = "http://localhost:8080".replace(/\/$/, ""); const BASE_URL = `${API_ORIGIN}/api`; const request = (options) => new Promise((resolve, reject) => { common_vendor.index.request({ url: BASE_URL + options.url, method: options.method || "GET", data: options.data || {}, header: options.header || {}, success: (res) => resolve(res.data), fail: (err) => reject(err) }); }); const get = (url, params = {}) => { const qs = Object.entries(params).filter(([, v]) => v != null).map(([k, v]) => `${encodeURIComponent(k)}=${encodeURIComponent(v)}`).join("&"); return request({ url: `${url}${qs ? "?" + qs : ""}`, method: "GET" }); }; const post = (url, body = {}) => request({ url, method: "POST", data: body, header: { "Content-Type": "application/json" } }); const put = (url, body = {}) => request({ url, method: "PUT", data: body, header: { "Content-Type": "application/json" } }); const del = (url) => request({ url, method: "DELETE" }); const imgUrl = (path) => { if (!path) return ""; if (path.startsWith("http")) return path; return `${API_ORIGIN}${path}`; }; const sendSms = (phone) => post("/sms/send", { phone }); const login = (phone, code) => post("/user/login", { phone, code }); const registerBoss = (data) => post("/user/register-boss", data); const registerStaff = (data) => post("/user/register-staff", data); const getAppointmentList = (userId, storeId) => get("/appointment/list", { userId, storeId }); const createAppointment = (data) => post("/appointment/create", data); const startAppointment = (appointmentId, staffUserId) => post("/appointment/start", { appointmentId, staffUserId }); const cancelAppointment = (id) => put(`/appointment/status?id=${id}&status=cancel`); const createReport = (data) => post("/report/create", data); const getReportByToken = (token) => get("/report/get", { token }); const getReportList = (params) => get("/report/list", params); const getServiceTypeList = (storeId) => get("/service-type/list", { storeId }); const createServiceType = (storeId, name) => post("/service-type/create", { storeId, name }); const deleteServiceType = (id) => del(`/service-type/delete?id=${id}`); const getStaffList = (storeId) => get("/user/staff-list", { storeId }); const createStaff = (data) => post("/user/create-staff", data); const deleteStaff = (staffId) => del(`/user/staff?staffId=${staffId}`); const updateUser = (data) => put("/user/update", data); const updateStore = (data) => put("/store/update", data); exports.API_ORIGIN = API_ORIGIN; exports.BASE_URL = BASE_URL; exports.cancelAppointment = cancelAppointment; exports.createAppointment = createAppointment; exports.createReport = createReport; exports.createServiceType = createServiceType; exports.createStaff = createStaff; exports.deleteServiceType = deleteServiceType; exports.deleteStaff = deleteStaff; exports.getAppointmentList = getAppointmentList; exports.getReportByToken = getReportByToken; exports.getReportList = getReportList; exports.getServiceTypeList = getServiceTypeList; exports.getStaffList = getStaffList; exports.imgUrl = imgUrl; exports.login = login; exports.registerBoss = registerBoss; exports.registerStaff = registerStaff; exports.sendSms = sendSms; exports.startAppointment = startAppointment; exports.updateStore = updateStore; exports.updateUser = updateUser;