You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

47 lines
1.3KB

  1. import { HOST_API } from "config";
  2. import { ApiId as A } from ".";
  3. const urls = {
  4. [A.CSRF_TOKEN]: "sanctum/csrf-cookie",
  5. [A.ME]: "me",
  6. [A.LOGIN]: "login",
  7. [A.LOGOUT]: "logout",
  8. [A.SEASON_TICKET_CONTRACTS]: "season-ticket-contracts",
  9. [A.PAYMENT_PLANS]: "season-ticket-contract/payment-plans",
  10. [A.STICKER_RE_ORDER]: "season-ticket-contract/sticker-re-order",
  11. [A.PARKING_CERTIFICATE_ORDER]:
  12. "season-ticket-contract/parking-certificate-order",
  13. [A.SEASON_TICKET_CONTRACT_TERMINATE_ORDER]:
  14. "season-ticket-contract/termination-order",
  15. [A.UPDATE_VEHICLE_INFO_ORDER]:
  16. "season-ticket-contract/update-vehicle-info-order",
  17. [A.FAQ]: "faq",
  18. [A.FAQ_GENRES]: "faq/genres",
  19. [A.ASK]: "ask",
  20. [A.UPLOAD_STUDENT_LICENSE_IMAGES]: "upload/student-license-images",
  21. [A.UPLOAD_OTHER_LICENSE_IMAGES]: "upload/other-license-images",
  22. [A.START_CHANGE_EMAIL]: "email/change/start",
  23. [A.VERIFY_CHANGE_EMAIL]: "email/change/verify",
  24. };
  25. const prefixs = {
  26. [A.CSRF_TOKEN]: "",
  27. };
  28. const DEFAULT_API_URL_PREFIX = "api";
  29. const getPrefix = (apiId: A) => {
  30. return prefixs[apiId] ?? DEFAULT_API_URL_PREFIX;
  31. };
  32. export const getUrl = (apiId: A) => {
  33. let url = getPrefix(apiId);
  34. if (url.length !== 0) {
  35. url += "/";
  36. }
  37. return url + (urls[apiId] ?? "");
  38. };
  39. export const getFullUrl = (apiId: A) => {
  40. return HOST_API + "/" + getUrl(apiId);
  41. };