@kohost/api-client 3.1.23 → 3.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (73) hide show
  1. package/dist/cjs/Client/index.js +471 -62
  2. package/dist/cjs/Models/Policy.js +34 -0
  3. package/dist/cjs/Models/User.js +17 -2
  4. package/dist/cjs/Models/index.js +2 -2
  5. package/dist/cjs/SocketIoClient/index.js +4 -0
  6. package/dist/cjs/index.js +1 -1
  7. package/dist/cjs/schemas/AnnouncementSchema.d.ts +1 -1
  8. package/dist/cjs/schemas/CategorySchema.d.ts +1 -1
  9. package/dist/cjs/schemas/CredentialSchema.d.ts +3 -3
  10. package/dist/cjs/schemas/DeviceRouterSchema.d.ts +1 -1
  11. package/dist/cjs/schemas/EmailMessageSchema.d.ts +1 -1
  12. package/dist/cjs/schemas/MediaFileSchema.d.ts +1 -1
  13. package/dist/cjs/schemas/MediaSourceSchema.d.ts +6 -1
  14. package/dist/cjs/schemas/OrderSchema.d.ts +7 -2
  15. package/dist/cjs/schemas/OrganizationSchema.d.ts +1 -1
  16. package/dist/cjs/schemas/PolicySchema.d.ts +25 -0
  17. package/dist/cjs/schemas/ProductSchema.d.ts +2 -2
  18. package/dist/cjs/schemas/PropertySchema.d.ts +2 -2
  19. package/dist/cjs/schemas/ReservationSchema.d.ts +1 -1
  20. package/dist/cjs/schemas/RoomSchema.d.ts +7 -1
  21. package/dist/cjs/schemas/SceneSchema.d.ts +1 -0
  22. package/dist/cjs/schemas/ShortLinkSchema.d.ts +1 -1
  23. package/dist/cjs/schemas/SmsMessageSchema.d.ts +1 -1
  24. package/dist/cjs/schemas/SpaceSchema.d.ts +1 -1
  25. package/dist/cjs/schemas/SystemUserSchema.d.ts +3 -3
  26. package/dist/cjs/schemas/TicketSchema.d.ts +2 -1
  27. package/dist/cjs/schemas/TimeSheetSchema.d.ts +1 -1
  28. package/dist/cjs/schemas/UserSchema.d.ts +26 -12
  29. package/dist/cjs/schemas/camera.json +2 -1
  30. package/dist/cjs/schemas/credential.json +3 -3
  31. package/dist/cjs/schemas/deviceRouter.json +2 -1
  32. package/dist/cjs/schemas/emailMessage.json +2 -1
  33. package/dist/cjs/schemas/mediaFile.json +2 -1
  34. package/dist/cjs/schemas/mediaSource.json +7 -1
  35. package/dist/cjs/schemas/order.json +10 -2
  36. package/dist/cjs/schemas/organization.json +2 -1
  37. package/dist/cjs/schemas/policy.json +62 -0
  38. package/dist/cjs/schemas/product.json +2 -1
  39. package/dist/cjs/schemas/property.json +3 -2
  40. package/dist/cjs/schemas/reservation.json +2 -1
  41. package/dist/cjs/schemas/room.json +5 -0
  42. package/dist/cjs/schemas/scene.json +5 -0
  43. package/dist/cjs/schemas/shortLink.json +2 -1
  44. package/dist/cjs/schemas/smsMessage.json +2 -1
  45. package/dist/cjs/schemas/space.json +2 -1
  46. package/dist/cjs/schemas/systemUser.json +10 -2
  47. package/dist/cjs/schemas/ticket.json +5 -0
  48. package/dist/cjs/schemas/timeSheet.json +1 -1
  49. package/dist/cjs/schemas/user.json +23 -26
  50. package/dist/cjs/utils/entityFactory.js +80 -0
  51. package/dist/cjs/utils/index.js +2 -0
  52. package/dist/esm/Client.js +473 -64
  53. package/dist/esm/Client.js.map +3 -3
  54. package/dist/esm/Models.js +215 -50
  55. package/dist/esm/Models.js.map +3 -3
  56. package/dist/esm/SocketIoClient.js +41 -17
  57. package/dist/esm/SocketIoClient.js.map +2 -2
  58. package/dist/esm/defs.js +33 -24
  59. package/dist/esm/defs.js.map +2 -2
  60. package/dist/esm/utils.js +5975 -1
  61. package/dist/esm/utils.js.map +4 -4
  62. package/dist/useCases/CreatePolicy.js +32 -0
  63. package/dist/useCases/DeletePolicy.js +32 -0
  64. package/dist/useCases/{SetCustomScene.js → DescribePolicy.js} +3 -3
  65. package/dist/useCases/DescribeReservationPetProducts.js +32 -0
  66. package/dist/useCases/DescribeReservationPromos.js +32 -0
  67. package/dist/useCases/ListPolicies.js +32 -0
  68. package/dist/useCases/ListProducts.js +32 -0
  69. package/dist/useCases/PurchaseReservationPetProducts.js +32 -0
  70. package/dist/useCases/PurchaseReservationPromos.js +32 -0
  71. package/dist/useCases/SetScene.js +32 -0
  72. package/dist/useCases/UpdatePolicy.js +32 -0
  73. package/package.json +4 -4
package/dist/esm/defs.js CHANGED
@@ -2021,7 +2021,7 @@ var require_axios = __commonJS({
2021
2021
  }, "onAdapterRejection"));
2022
2022
  }
2023
2023
  __name(dispatchRequest, "dispatchRequest");
2024
- var headersToObject = /* @__PURE__ */ __name((thing) => thing instanceof AxiosHeaders$1 ? thing.toJSON() : thing, "headersToObject");
2024
+ var headersToObject = /* @__PURE__ */ __name((thing) => thing instanceof AxiosHeaders$1 ? { ...thing } : thing, "headersToObject");
2025
2025
  function mergeConfig(config1, config2) {
2026
2026
  config2 = config2 || {};
2027
2027
  const config = {};
@@ -2105,7 +2105,7 @@ var require_axios = __commonJS({
2105
2105
  return config;
2106
2106
  }
2107
2107
  __name(mergeConfig, "mergeConfig");
2108
- var VERSION = "1.6.7";
2108
+ var VERSION = "1.6.8";
2109
2109
  var validators$1 = {};
2110
2110
  ["object", "boolean", "number", "function", "string", "symbol"].forEach((type, i) => {
2111
2111
  validators$1[type] = /* @__PURE__ */ __name(function validator2(thing) {
@@ -2540,26 +2540,31 @@ var require_Client = __commonJS({
2540
2540
  static {
2541
2541
  __name(this, "KohostApiClient");
2542
2542
  }
2543
+ #onSuccess;
2544
+ #onError;
2543
2545
  /**
2544
- @param {Object} options - The options to create the client
2545
- @param {String} options.organizationId - The organization ID
2546
- @param {String} options.propertyId - The property ID
2547
- @param {String} options.url - The base URL for the API endpint
2548
- @param {Object} options.headers - Additional headers to send with each request
2549
-
2550
- */
2546
+ @param {Object} options - The options to create the client
2547
+ @param {String} options.organizationId - The organization ID
2548
+ @param {String} options.propertyId - The property ID
2549
+ @param {String} options.url - The base URL for the API endpint
2550
+ @param {Object} options.headers - Additional headers to send with each request
2551
+ @param {String} options.apiKey - The API key to use for requests
2552
+ @param {Function} options.onSuccess - A callback to handle successful responses
2553
+ @param {Function} options.onError - A callback to handle errors
2554
+ */
2551
2555
  constructor(options = {
2552
2556
  url: "",
2553
2557
  propertyId: "",
2554
2558
  organizationId: "",
2555
2559
  apiKey: "",
2556
- headers: {}
2560
+ headers: {},
2561
+ onSuccess: (response) => response,
2562
+ onError: (error) => error
2557
2563
  }) {
2558
2564
  super();
2559
2565
  if (!options.url)
2560
2566
  throw new Error("options.url is required");
2561
2567
  this.options = options;
2562
- this.isBrowser = typeof window !== "undefined";
2563
2568
  this.isRefreshingToken = false;
2564
2569
  const config = {
2565
2570
  baseURL: options.url,
@@ -2580,10 +2585,12 @@ var require_Client = __commonJS({
2580
2585
  if (options.organizationId) {
2581
2586
  config.headers[_KohostApiClient.defs.organizationHeader] = options.organizationId;
2582
2587
  }
2588
+ this.#onSuccess = options.onSuccess ? options.onSuccess : (response) => response;
2589
+ this.#onError = options.onError ? options.onError : (error) => error;
2583
2590
  this._http = axios.create(config);
2584
2591
  this._http.interceptors.response.use(
2585
- this._handleResponse.bind(this),
2586
- this._handleResponseError.bind(this)
2592
+ this.#handleResponse.bind(this),
2593
+ this.#handleResponseError.bind(this)
2587
2594
  );
2588
2595
  }
2589
2596
  /**
@@ -2615,19 +2622,26 @@ var require_Client = __commonJS({
2615
2622
  organizationHeader: "X-Organization-Id"
2616
2623
  };
2617
2624
  }
2618
- _handleResponse(response) {
2625
+ #onLoginRequired() {
2626
+ this.emit("LoginRequired");
2627
+ }
2628
+ #onPhoneVerificationRequired() {
2629
+ this.emit("PhoneVerificationRequired");
2630
+ }
2631
+ #handleResponse(response) {
2619
2632
  try {
2620
2633
  if (response?.data?.data) {
2621
2634
  response.query = response.data.query;
2622
2635
  response.pagination = response.data.pagination;
2623
2636
  response.data = response.data.data;
2624
2637
  }
2638
+ response = this.#onSuccess(response);
2625
2639
  return response;
2626
2640
  } catch (error) {
2627
2641
  return Promise.reject(error);
2628
2642
  }
2629
2643
  }
2630
- _handleResponseError(error) {
2644
+ #handleResponseError(error) {
2631
2645
  const { config: originalReq } = error;
2632
2646
  if (!error.response)
2633
2647
  return Promise.reject(error);
@@ -2638,15 +2652,15 @@ var require_Client = __commonJS({
2638
2652
  const expectedError = status >= 400 && status < 500;
2639
2653
  const newTokensNeeded = expectedError && errorType === "TokenExpiredError";
2640
2654
  if (expectedError && errorMessage === "Phone Verification is required") {
2641
- this._onPhoneVerificationRequired();
2655
+ this.#onPhoneVerificationRequired();
2642
2656
  return Promise.reject(error);
2643
2657
  }
2644
2658
  if (expectedError && errorMessage === "Login Required") {
2645
- this._onLoginRequired();
2659
+ this.#onLoginRequired();
2646
2660
  return Promise.reject(error);
2647
2661
  }
2648
2662
  if (expectedError && errorMessage === "No auth header or cookie provided") {
2649
- this._onLoginRequired();
2663
+ this.#onLoginRequired();
2650
2664
  return Promise.reject(error);
2651
2665
  }
2652
2666
  if (expectedError && newTokensNeeded) {
@@ -2664,14 +2678,9 @@ var require_Client = __commonJS({
2664
2678
  } catch (error2) {
2665
2679
  console.log(error2);
2666
2680
  }
2681
+ error = this.#onError(error);
2667
2682
  return Promise.reject(error);
2668
2683
  }
2669
- _onLoginRequired() {
2670
- this.emit("LoginRequired");
2671
- }
2672
- _onPhoneVerificationRequired() {
2673
- this.emit("PhoneVerificationRequired");
2674
- }
2675
2684
  };
2676
2685
  module.exports = KohostApiClient;
2677
2686
  }