@qite/tide-client 1.1.48 → 1.1.51

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 (271) hide show
  1. package/build/index.js.map +1 -1
  2. package/build/types/accommodation-occupancy.d.ts +9 -9
  3. package/build/types/accommodation-with-available-places.d.ts +15 -15
  4. package/build/types/accommodation.d.ts +7 -7
  5. package/build/types/additional-services.d.ts +5 -5
  6. package/build/types/alternative-flight-data.d.ts +10 -10
  7. package/build/types/alternative-flight-leg.d.ts +18 -18
  8. package/build/types/alternative-flight.d.ts +12 -12
  9. package/build/types/availability-request.d.ts +11 -11
  10. package/build/types/availability.d.ts +5 -5
  11. package/build/types/available-products-request.d.ts +28 -28
  12. package/build/types/availablility-request.d.ts +11 -11
  13. package/build/types/duration.d.ts +4 -4
  14. package/build/types/entry-line-meta-data.d.ts +5 -5
  15. package/build/types/enums/online-payment-type.d.ts +3 -3
  16. package/build/types/enums/print-action-group.enum.d.ts +10 -10
  17. package/build/types/flight-leg.d.ts +18 -18
  18. package/build/types/flight.d.ts +23 -23
  19. package/build/types/hotel.d.ts +34 -34
  20. package/build/types/offer/affiliates.d.ts +5 -5
  21. package/build/types/offer/booking-v2/request/tour-codes-request.d.ts +3 -3
  22. package/build/types/offer/entry.d.ts +4 -0
  23. package/build/types/offer/package-search-response.d.ts +4 -4
  24. package/build/types/option-pax.d.ts +4 -4
  25. package/build/types/option.d.ts +26 -26
  26. package/build/types/package-details-request.d.ts +12 -12
  27. package/build/types/package-flight.d.ts +11 -11
  28. package/build/types/package-flights.d.ts +5 -5
  29. package/build/types/package-option.d.ts +19 -19
  30. package/build/types/package-room-option.d.ts +8 -8
  31. package/build/types/package-room.d.ts +7 -7
  32. package/build/types/package-search-destination.d.ts +9 -9
  33. package/build/types/package-search-request-date.d.ts +4 -4
  34. package/build/types/package-search-request-room.d.ts +5 -5
  35. package/build/types/package-search-request.d.ts +21 -21
  36. package/build/types/package-search-response.d.ts +4 -4
  37. package/build/types/package-search-result.d.ts +12 -12
  38. package/build/types/package-sub-option.d.ts +6 -6
  39. package/build/types/pax.d.ts +4 -4
  40. package/build/types/regime.d.ts +5 -5
  41. package/build/types/traveler-grouping.d.ts +5 -5
  42. package/build/utils/booking-v2-client.d.ts +1 -1
  43. package/build/utils/bookingClient.d.ts +9 -9
  44. package/build/utils/client.d.ts +4 -4
  45. package/package.json +64 -64
  46. package/rollup.config.js +20 -20
  47. package/src/index.ts +71 -71
  48. package/src/services/odata.service.ts +158 -158
  49. package/src/types/aapi/accommodation-occupancy.ts +9 -9
  50. package/src/types/aapi/accommodation-with-available-places.ts +15 -15
  51. package/src/types/aapi/accommodation.ts +8 -8
  52. package/src/types/aapi/additional-services.ts +6 -6
  53. package/src/types/aapi/alternative-flight-data.ts +11 -11
  54. package/src/types/aapi/alternative-flight-leg.ts +18 -18
  55. package/src/types/aapi/alternative-flight.ts +13 -13
  56. package/src/types/aapi/availability-request.ts +12 -12
  57. package/src/types/aapi/availability.ts +6 -6
  58. package/src/types/aapi/available-products-request.ts +33 -33
  59. package/src/types/aapi/duration.ts +4 -4
  60. package/src/types/aapi/flight-leg.ts +18 -18
  61. package/src/types/aapi/flight.ts +24 -24
  62. package/src/types/aapi/hotel.ts +36 -36
  63. package/src/types/aapi/index.ts +22 -22
  64. package/src/types/aapi/mollie-payment-request.ts +6 -6
  65. package/src/types/aapi/mollie-payment.ts +3 -3
  66. package/src/types/aapi/option-pax.ts +4 -4
  67. package/src/types/aapi/option.ts +29 -29
  68. package/src/types/aapi/pax.ts +4 -4
  69. package/src/types/aapi/price-detail.ts +8 -8
  70. package/src/types/aapi/regime.ts +5 -5
  71. package/src/types/aapi/traveler-grouping.ts +5 -5
  72. package/src/types/company/agent/agent-invoice-item.ts +9 -9
  73. package/src/types/company/agent/change-entry-agent-surcharge-action.model.ts +5 -5
  74. package/src/types/company/agent/entry-totals.ts +7 -7
  75. package/src/types/company/agent/index.ts +3 -3
  76. package/src/types/company/agent-print-action-request.ts +11 -11
  77. package/src/types/company/agent-print-action.ts +7 -7
  78. package/src/types/company/custom-entry-status-item.ts +6 -6
  79. package/src/types/company/index.ts +5 -5
  80. package/src/types/company/number-string-pair.ts +4 -4
  81. package/src/types/enums/allotment-type.ts +5 -5
  82. package/src/types/enums/availability-search-type.ts +4 -4
  83. package/src/types/enums/data-type.ts +14 -14
  84. package/src/types/enums/dossier-type.ts +6 -6
  85. package/src/types/enums/entry-line-flag.ts +6 -6
  86. package/src/types/enums/entry-line-status.ts +19 -19
  87. package/src/types/enums/entry-status.ts +8 -8
  88. package/src/types/enums/export-status.ts +5 -5
  89. package/src/types/enums/gender.ts +5 -5
  90. package/src/types/enums/index.ts +17 -17
  91. package/src/types/enums/meta-data-type.ts +10 -10
  92. package/src/types/enums/payment-type.ts +6 -6
  93. package/src/types/enums/price-chart-type.ts +4 -4
  94. package/src/types/enums/print-action-group.ts +10 -10
  95. package/src/types/enums/requirement-type.ts +5 -5
  96. package/src/types/enums/room-type.ts +8 -8
  97. package/src/types/enums/sale-type.ts +4 -4
  98. package/src/types/enums/service-type.ts +28 -28
  99. package/src/types/index.ts +28 -28
  100. package/src/types/odata/column.ts +8 -8
  101. package/src/types/odata/filter-item.ts +14 -14
  102. package/src/types/odata/index.ts +3 -3
  103. package/src/types/odata/odata-params.ts +3 -3
  104. package/src/types/offer/additional-services.ts +6 -6
  105. package/src/types/offer/address.ts +11 -11
  106. package/src/types/offer/affiliate.ts +5 -5
  107. package/src/types/offer/alternative-flight-data.ts +11 -11
  108. package/src/types/offer/alternative-flight-leg.ts +18 -18
  109. package/src/types/offer/alternative-flight.ts +15 -15
  110. package/src/types/offer/available-package-accommodation.ts +8 -8
  111. package/src/types/offer/available-package-flight.ts +10 -10
  112. package/src/types/offer/available-package-option.ts +18 -18
  113. package/src/types/offer/available-package-pax-price.ts +6 -6
  114. package/src/types/offer/available-package-regime.ts +4 -4
  115. package/src/types/offer/available-package.ts +8 -8
  116. package/src/types/offer/base-price.ts +6 -6
  117. package/src/types/offer/base-prices-from-date-request.ts +12 -12
  118. package/src/types/offer/base-prices-request.ts +12 -12
  119. package/src/types/offer/book-request.ts +38 -38
  120. package/src/types/offer/booking-response.ts +4 -4
  121. package/src/types/offer/booking-v2/index.ts +3 -3
  122. package/src/types/offer/booking-v2/request/bookable-dates-request.ts +4 -4
  123. package/src/types/offer/booking-v2/request/booking-package-address.ts +14 -14
  124. package/src/types/offer/booking-v2/request/booking-package-book-request.ts +26 -26
  125. package/src/types/offer/booking-v2/request/booking-package-customer-request.ts +4 -4
  126. package/src/types/offer/booking-v2/request/booking-package-destination.ts +9 -9
  127. package/src/types/offer/booking-v2/request/booking-package-details-request.ts +24 -24
  128. package/src/types/offer/booking-v2/request/booking-package-flight-pool-request.ts +13 -13
  129. package/src/types/offer/booking-v2/request/booking-package-request.ts +5 -5
  130. package/src/types/offer/booking-v2/request/booking-package-search-request.ts +30 -30
  131. package/src/types/offer/booking-v2/request/booking-package-update-request.ts +5 -5
  132. package/src/types/offer/booking-v2/request/booking-package-voucher-request.ts +4 -4
  133. package/src/types/offer/booking-v2/request/index.ts +14 -14
  134. package/src/types/offer/booking-v2/request/selected-flight.ts +6 -6
  135. package/src/types/offer/booking-v2/request/selected-hotel.ts +5 -5
  136. package/src/types/offer/booking-v2/request/tour-codes.request.ts +3 -3
  137. package/src/types/offer/booking-v2/response/bookable-dates.ts +4 -4
  138. package/src/types/offer/booking-v2/response/booking-package-allotment-info.ts +17 -17
  139. package/src/types/offer/booking-v2/response/booking-package-dossier.ts +6 -6
  140. package/src/types/offer/booking-v2/response/booking-package-flight-pool.ts +6 -6
  141. package/src/types/offer/booking-v2/response/booking-package-hotel-pool.ts +5 -5
  142. package/src/types/offer/booking-v2/response/booking-package-item.ts +40 -40
  143. package/src/types/offer/booking-v2/response/booking-price-detail.ts +20 -20
  144. package/src/types/offer/booking-v2/response/booking-price-details.ts +15 -15
  145. package/src/types/offer/booking-v2/response/booking-price-per-pax.ts +4 -4
  146. package/src/types/offer/booking-v2/response/booking-product-notification.ts +7 -7
  147. package/src/types/offer/booking-v2/response/booking-room-status-option.ts +5 -5
  148. package/src/types/offer/booking-v2/response/booking-room-status.ts +6 -6
  149. package/src/types/offer/booking-v2/response/booking-travel-agent.ts +7 -7
  150. package/src/types/offer/booking-v2/response/booking-validity-line.ts +4 -4
  151. package/src/types/offer/booking-v2/response/booking-voucher-result.ts +3 -3
  152. package/src/types/offer/booking-v2/response/changed-line.ts +4 -4
  153. package/src/types/offer/booking-v2/response/index.ts +16 -16
  154. package/src/types/offer/booking-v2/response/tide-response.ts +6 -6
  155. package/src/types/offer/booking-v2/response/tour-codes-response.ts +3 -3
  156. package/src/types/offer/booking-v2/shared/airline-booking-package-option.ts +3 -3
  157. package/src/types/offer/booking-v2/shared/airport-booking-package-option.ts +3 -3
  158. package/src/types/offer/booking-v2/shared/booking-airline-group.ts +7 -7
  159. package/src/types/offer/booking-v2/shared/booking-airport-group.ts +7 -7
  160. package/src/types/offer/booking-v2/shared/booking-option-group.ts +5 -5
  161. package/src/types/offer/booking-v2/shared/booking-option-pax.ts +14 -14
  162. package/src/types/offer/booking-v2/shared/booking-option-unit.ts +13 -13
  163. package/src/types/offer/booking-v2/shared/booking-package-availability.ts +8 -8
  164. package/src/types/offer/booking-v2/shared/booking-package-flight-meta-data-line.ts +17 -17
  165. package/src/types/offer/booking-v2/shared/booking-package-flight-meta-data.ts +11 -11
  166. package/src/types/offer/booking-v2/shared/booking-package-flight.ts +15 -15
  167. package/src/types/offer/booking-v2/shared/booking-package-hotel-option.ts +10 -10
  168. package/src/types/offer/booking-v2/shared/booking-package-hotel-room.ts +6 -6
  169. package/src/types/offer/booking-v2/shared/booking-package-hotel.ts +27 -27
  170. package/src/types/offer/booking-v2/shared/booking-package-line.ts +17 -17
  171. package/src/types/offer/booking-v2/shared/booking-package-option.ts +55 -55
  172. package/src/types/offer/booking-v2/shared/booking-package-pax.ts +19 -19
  173. package/src/types/offer/booking-v2/shared/booking-package-request-room.ts +6 -6
  174. package/src/types/offer/booking-v2/shared/booking-package-room-option.ts +17 -17
  175. package/src/types/offer/booking-v2/shared/booking-package-room.ts +6 -6
  176. package/src/types/offer/booking-v2/shared/booking-package-tag.ts +5 -5
  177. package/src/types/offer/booking-v2/shared/booking-package.ts +13 -13
  178. package/src/types/offer/booking-v2/shared/index.ts +23 -23
  179. package/src/types/offer/booking-v2/shared/per-booking-package-option.ts +10 -10
  180. package/src/types/offer/booking-v2/shared/per-package-option.ts +10 -10
  181. package/src/types/offer/booking-v2/shared/per-pax-package-option.ts +6 -6
  182. package/src/types/offer/booking-v2/shared/per-unit-package-option.ts +8 -8
  183. package/src/types/offer/cached-package-search-result.ts +6 -6
  184. package/src/types/offer/confirmed-dossier-check.ts +6 -6
  185. package/src/types/offer/country-item.ts +5 -5
  186. package/src/types/offer/crm-contact-request.ts +37 -37
  187. package/src/types/offer/customer-request.ts +5 -5
  188. package/src/types/offer/dossier-default-product.ts +14 -14
  189. package/src/types/offer/dossier-view-result.ts +49 -49
  190. package/src/types/offer/entry-check-response.ts +5 -5
  191. package/src/types/offer/entry-line-meta-data.ts +5 -5
  192. package/src/types/offer/entry-line-pax.ts +9 -9
  193. package/src/types/offer/entry-line.ts +74 -74
  194. package/src/types/offer/entry-price-line.ts +40 -40
  195. package/src/types/offer/entry-room2.ts +5 -5
  196. package/src/types/offer/entry.ts +66 -62
  197. package/src/types/offer/flight-meta-data-line.ts +16 -16
  198. package/src/types/offer/flight-meta-data.ts +15 -15
  199. package/src/types/offer/flight-pool.ts +6 -6
  200. package/src/types/offer/index.ts +76 -76
  201. package/src/types/offer/item-tag.ts +3 -3
  202. package/src/types/offer/language.ts +5 -5
  203. package/src/types/offer/member-confirmation-request.ts +5 -5
  204. package/src/types/offer/member-forgot-password-request.ts +4 -4
  205. package/src/types/offer/member-info.ts +10 -10
  206. package/src/types/offer/member-login-request.ts +4 -4
  207. package/src/types/offer/member-login-response.ts +3 -3
  208. package/src/types/offer/member-reset-password-request.ts +4 -4
  209. package/src/types/offer/multiroom-book-request.ts +11 -11
  210. package/src/types/offer/note.ts +16 -16
  211. package/src/types/offer/other-product.ts +14 -14
  212. package/src/types/offer/package-book-request-room.ts +6 -6
  213. package/src/types/offer/package-book-request.ts +13 -13
  214. package/src/types/offer/package-flight.ts +14 -14
  215. package/src/types/offer/package-flights.ts +6 -6
  216. package/src/types/offer/package-option.ts +23 -23
  217. package/src/types/offer/package-price-details-request-room.ts +4 -4
  218. package/src/types/offer/package-price-details-request.ts +9 -9
  219. package/src/types/offer/package-room-option.ts +10 -10
  220. package/src/types/offer/package-room.ts +8 -8
  221. package/src/types/offer/package-search-destination.ts +9 -9
  222. package/src/types/offer/package-search-request-date.ts +4 -4
  223. package/src/types/offer/package-search-request-room.ts +5 -5
  224. package/src/types/offer/package-search-request.ts +23 -23
  225. package/src/types/offer/package-search-result.ts +13 -13
  226. package/src/types/offer/package-sub-option.ts +6 -6
  227. package/src/types/offer/page-result.ts +5 -5
  228. package/src/types/offer/pax.ts +30 -30
  229. package/src/types/offer/payment.ts +20 -20
  230. package/src/types/offer/person-country-preference.ts +7 -7
  231. package/src/types/offer/person-location-preference.ts +7 -7
  232. package/src/types/offer/person-oord-preference.ts +7 -7
  233. package/src/types/offer/person-period-date-range-preference.ts +6 -6
  234. package/src/types/offer/person-period-preference.ts +7 -7
  235. package/src/types/offer/person-region-preference.ts +7 -7
  236. package/src/types/offer/person-tour-group-preference.ts +7 -7
  237. package/src/types/offer/price-detail.ts +19 -19
  238. package/src/types/offer/price-per-pax.ts +6 -6
  239. package/src/types/offer/product-notification-result.ts +9 -9
  240. package/src/types/offer/web-contact-form-request.ts +13 -13
  241. package/src/types/offer/web-contact-has-tag-request.ts +4 -4
  242. package/src/types/tide-client-config.ts +5 -5
  243. package/src/utils/api.ts +54 -54
  244. package/src/utils/booking-client.ts +310 -310
  245. package/src/utils/booking-v2-client.ts +224 -224
  246. package/src/utils/common-client.ts +44 -44
  247. package/src/utils/json.ts +26 -26
  248. package/src/utils/member-client.ts +76 -76
  249. package/src/utils/mollie-client.ts +27 -27
  250. package/src/utils/search-client.ts +22 -22
  251. package/src/utils/web-agent-client.ts +176 -176
  252. package/src/utils/web-client.ts +58 -58
  253. package/src/utils/web-contact-client.ts +43 -43
  254. package/src/utils/web-file.ts +24 -24
  255. package/tests/bookingClient.test.ts +728 -728
  256. package/tests/mocks/available-products.json +183 -183
  257. package/tests/mocks/base-prices-from-date.json +74 -74
  258. package/tests/mocks/base-prices.json +236 -236
  259. package/tests/mocks/entry-multiroom.json +2043 -2043
  260. package/tests/mocks/entry-multiroom.short.json +4 -4
  261. package/tests/mocks/offer-entry.json +2043 -2043
  262. package/tests/mocks/offer-entry.short.json +4 -4
  263. package/tests/mocks/package-entry.json +2043 -2043
  264. package/tests/mocks/package-entry.short.json +4 -4
  265. package/tests/mocks/package-offer-entry.json +2043 -2043
  266. package/tests/mocks/package-offer-entry.short.json +4 -4
  267. package/tests/mocks/package-price-details.json +176 -176
  268. package/tests/mocks/package-search.json +179 -179
  269. package/tests/webClient.test.ts +38 -38
  270. package/tests/webContactClient.test.ts +61 -61
  271. package/tsconfig.json +23 -23
@@ -1,310 +1,310 @@
1
- import {
2
- Availability,
3
- AvailableProductsRequest,
4
- BasePrice,
5
- BasePricesFromDateRequest,
6
- BasePricesRequest,
7
- BookingResponse,
8
- CachedPackageSearchResult,
9
- Entry,
10
- MultiroomBookRequest,
11
- PackageBookRequest,
12
- PackagePriceDetailsRequest,
13
- PackageSearchRequest,
14
- PriceDetail,
15
- TideClientConfig,
16
- } from "../types";
17
-
18
- import { post } from "./common-client";
19
- import { replacer } from "./json";
20
-
21
- const ENDPOINT = "/api/web/booking";
22
- const ENDPOINT_AVAILABLE_PRODUCTS = `${ENDPOINT}/available-products`;
23
- const ENDPOINT_PACKAGE_SEARCH = `${ENDPOINT}/package-search`;
24
- const ENDPOINT_PACKAGE_PRICE_DETAILS = `${ENDPOINT}/package-price-details`;
25
- const ENDPOINT_CREATE_OFFER = `${ENDPOINT}/offer-entry`;
26
- const ENDPOINT_CREATE_ENTRY = `${ENDPOINT}/entry-multiroom`;
27
- const ENDPOINT_CREATE_PACKAGE_OFFER = `${ENDPOINT}/package-offer-entry`;
28
- const ENDPOINT_CREATE_PACKAGE_ENTRY = `${ENDPOINT}/package-entry`;
29
- const ENDPOINT_GET_BASE_PRICES = `${ENDPOINT}/base-prices`;
30
- const ENDPOINT_GET_BASE_PRICES_FROM_DATE = `${ENDPOINT}/base-prices-from-date`;
31
-
32
- /**
33
- * api/web/booking/available-products
34
- * @param config
35
- * @param request
36
- * @returns Availabilities (options) for the specified request.
37
- * @deprecated Use V2: Search
38
- */
39
- export const getAvailableProducts = (
40
- config: TideClientConfig,
41
- request: AvailableProductsRequest,
42
- signal?: AbortSignal
43
- ): Promise<Availability[]> => {
44
- const url = `${config.host}${ENDPOINT_AVAILABLE_PRODUCTS}`;
45
- const apiKey = config.apiKey;
46
- const body = JSON.stringify(request);
47
-
48
- return post(url, apiKey, body, config.token, signal);
49
- };
50
-
51
- /**
52
- * api/web/booking/package-search
53
- * @param config
54
- * @param request
55
- * @returns Travel options (excursions etc) for a specified product, accommodation and regime.
56
- * @depracted Use V2: Search
57
- */
58
- export const searchPackages = (
59
- config: TideClientConfig,
60
- request: PackageSearchRequest,
61
- signal?: AbortSignal
62
- ): Promise<CachedPackageSearchResult[]> => {
63
- const url = `${config.host}${ENDPOINT_PACKAGE_SEARCH}`;
64
- const apiKey = config.apiKey;
65
- const body = JSON.stringify(request);
66
-
67
- return post(url, apiKey, body, config.token, signal);
68
- };
69
-
70
- /**
71
- * api/web/booking/package-price-details
72
- * @param config
73
- * @param request
74
- * @returns A price breakdown for a specified Package (= product and selected options).
75
- * @deprecated Use V2: Price details
76
- */
77
- export const getPackagePriceDetails = (
78
- config: TideClientConfig,
79
- request: PackagePriceDetailsRequest,
80
- signal?: AbortSignal
81
- ): Promise<PriceDetail[]> => {
82
- const url = `${config.host}${ENDPOINT_PACKAGE_PRICE_DETAILS}`;
83
- const apiKey = config.apiKey;
84
- const body = JSON.stringify(request);
85
-
86
- return post(url, apiKey, body, config.token, signal);
87
- };
88
-
89
- /**
90
- * api/web/booking/offer-entry
91
- * Creates an Tide Offer, based on the request.
92
- * @param config
93
- * @param request
94
- * @returns The (full) created offer Entry.
95
- * @deprecated Use V2: Book
96
- */
97
- export const createOffer = (
98
- config: TideClientConfig,
99
- request: MultiroomBookRequest,
100
- signal?: AbortSignal
101
- ): Promise<Entry> => {
102
- // Update request to use full response
103
- request.useShortResponse = false;
104
-
105
- const url = `${config.host}${ENDPOINT_CREATE_OFFER}`;
106
- const apiKey = config.apiKey;
107
- const body = JSON.stringify(request);
108
-
109
- return post(url, apiKey, body, config.token, signal);
110
- };
111
-
112
- /**
113
- * api/web/booking/offer-entry
114
- * Creates a Tide Offer, based on the request.
115
- * @param config
116
- * @param request
117
- * @returns The (short) created offer Entry.
118
- * @deprecated Use V2: Book
119
- */
120
- export const createOfferWithShortResponse = (
121
- config: TideClientConfig,
122
- request: MultiroomBookRequest,
123
- signal?: AbortSignal
124
- ): Promise<BookingResponse> => {
125
- // Update request to use short response
126
- request.useShortResponse = true;
127
-
128
- const url = `${config.host}${ENDPOINT_CREATE_OFFER}`;
129
- const apiKey = config.apiKey;
130
- const body = JSON.stringify(request, replacer);
131
-
132
- return post(url, apiKey, body, config.token, signal);
133
- };
134
-
135
- /**
136
- * api/web/booking/entry-multiroom
137
- * Creates a Tide Booking, based on the request.
138
- * @param config
139
- * @param request
140
- * @returns The (full) created booking Entry.
141
- * @deprecated Use V2: Book
142
- */
143
- export const createEntry = (
144
- config: TideClientConfig,
145
- request: MultiroomBookRequest,
146
- signal?: AbortSignal
147
- ): Promise<Entry> => {
148
- // Update request to use full response
149
- request.useShortResponse = false;
150
-
151
- const url = `${config.host}${ENDPOINT_CREATE_ENTRY}`;
152
- const apiKey = config.apiKey;
153
- const body = JSON.stringify(request, replacer);
154
-
155
- return post(url, apiKey, body, config.token, signal);
156
- };
157
-
158
- /**
159
- * api/web/booking/entry-multiroom
160
- * Creates a Tide Booking, based on the request.
161
- * @param config
162
- * @param request
163
- * @returns The (short) created booking Entry.
164
- * @deprecated Use V2: Book
165
- */
166
- export const createEntryWithShortResponse = (
167
- config: TideClientConfig,
168
- request: MultiroomBookRequest,
169
- signal?: AbortSignal
170
- ): Promise<BookingResponse> => {
171
- // Update request to use short response
172
- request.useShortResponse = true;
173
-
174
- const url = `${config.host}${ENDPOINT_CREATE_ENTRY}`;
175
- const apiKey = config.apiKey;
176
- const body = JSON.stringify(request, replacer);
177
-
178
- return post(url, apiKey, body, config.token, signal);
179
- };
180
-
181
- /**
182
- * api/web/booking/package-offer-entry
183
- * Creates a Tide Offer, based on the request.
184
- * @param config
185
- * @param request
186
- * @returns The (full) created offer Entry.
187
- * @depracted Use V2: Book
188
- */
189
- export const createPackageOffer = (
190
- config: TideClientConfig,
191
- request: PackageBookRequest,
192
- signal?: AbortSignal
193
- ): Promise<Entry> => {
194
- // Update request to use full response
195
- request.useShortResponse = false;
196
-
197
- const url = `${config.host}${ENDPOINT_CREATE_PACKAGE_OFFER}`;
198
- const apiKey = config.apiKey;
199
- const body = JSON.stringify(request, replacer);
200
-
201
- return post(url, apiKey, body, config.token, signal);
202
- };
203
-
204
- /**
205
- * api/web/booking/package-offer-entry
206
- * Creates a Tide Offer, based on the request.
207
- * @param config
208
- * @param request
209
- * @returns The (short) created offer Entry.
210
- * @deprecated Use V2: Book
211
- */
212
- export const createPackageOfferWithShortResponse = (
213
- config: TideClientConfig,
214
- request: PackageBookRequest,
215
- signal?: AbortSignal
216
- ): Promise<BookingResponse> => {
217
- // Update request to use short response
218
- request.useShortResponse = true;
219
-
220
- const url = `${config.host}${ENDPOINT_CREATE_PACKAGE_OFFER}`;
221
- const apiKey = config.apiKey;
222
- const body = JSON.stringify(request, replacer);
223
-
224
- return post(url, apiKey, body, config.token, signal);
225
- };
226
-
227
- /**
228
- * api/web/booking/package-entry
229
- * Create a Tide Booking, based on the request.
230
- * @param config
231
- * @param request
232
- * @returns The (full) created booking Entry.
233
- * @deprecated Use V2: book
234
- */
235
- export const createPackageEntry = (
236
- config: TideClientConfig,
237
- request: PackageBookRequest,
238
- signal?: AbortSignal
239
- ): Promise<Entry> => {
240
- // Update request to use full response
241
- request.useShortResponse = false;
242
-
243
- const url = `${config.host}${ENDPOINT_CREATE_PACKAGE_ENTRY}`;
244
- const apiKey = config.apiKey;
245
- const body = JSON.stringify(request, replacer);
246
-
247
- return post(url, apiKey, body, config.token, signal);
248
- };
249
-
250
- /**
251
- * api/web/booking/package-entry
252
- * Create a Tide Booking, based on the request.
253
- * @param config
254
- * @param request
255
- * @returns The (short) created booking Entry.
256
- * @deprecated Use V2: Book
257
- */
258
- export const createPackageEntryWithShortResponse = (
259
- config: TideClientConfig,
260
- request: PackageBookRequest,
261
- signal?: AbortSignal
262
- ): Promise<BookingResponse> => {
263
- // Update request to use short response
264
- request.useShortResponse = true;
265
-
266
- const url = `${config.host}${ENDPOINT_CREATE_PACKAGE_ENTRY}`;
267
- const apiKey = config.apiKey;
268
- const body = JSON.stringify(request, replacer);
269
-
270
- return post(url, apiKey, body, config.token, signal);
271
- };
272
-
273
- /**
274
- * api/web/booking/base-prices
275
- * Get base prices of a specific product and accommodation in a defined period.
276
- * @param config
277
- * @param request
278
- * @returns The base prices of a specific product and accommodation during the defined period.
279
- * @deprecated Use V2: Prices
280
- */
281
- export const getBasePrices = (
282
- config: TideClientConfig,
283
- request: BasePricesRequest,
284
- signal?: AbortSignal
285
- ): Promise<BasePrice[]> => {
286
- const url = `${config.host}${ENDPOINT_GET_BASE_PRICES}`;
287
- const apiKey = config.apiKey;
288
- const body = JSON.stringify(request, replacer);
289
-
290
- return post(url, apiKey, body, config.token, signal);
291
- };
292
-
293
- /**
294
- * api/web/booking/base-prices-from-date
295
- * Get base prices of a specific product and accommodation starting from a specific date.
296
- * @param config
297
- * @param request
298
- * @returns The base prices of a specific product and accommodationg starting from a specific date.
299
- */
300
- export const getBasePricesFromDate = (
301
- config: TideClientConfig,
302
- request: BasePricesFromDateRequest,
303
- signal?: AbortSignal
304
- ): Promise<BasePrice[]> => {
305
- const url = `${config.host}${ENDPOINT_GET_BASE_PRICES_FROM_DATE}`;
306
- const apiKey = config.apiKey;
307
- const body = JSON.stringify(request, replacer);
308
-
309
- return post(url, apiKey, body, config.token, signal);
310
- };
1
+ import {
2
+ Availability,
3
+ AvailableProductsRequest,
4
+ BasePrice,
5
+ BasePricesFromDateRequest,
6
+ BasePricesRequest,
7
+ BookingResponse,
8
+ CachedPackageSearchResult,
9
+ Entry,
10
+ MultiroomBookRequest,
11
+ PackageBookRequest,
12
+ PackagePriceDetailsRequest,
13
+ PackageSearchRequest,
14
+ PriceDetail,
15
+ TideClientConfig,
16
+ } from "../types";
17
+
18
+ import { post } from "./common-client";
19
+ import { replacer } from "./json";
20
+
21
+ const ENDPOINT = "/api/web/booking";
22
+ const ENDPOINT_AVAILABLE_PRODUCTS = `${ENDPOINT}/available-products`;
23
+ const ENDPOINT_PACKAGE_SEARCH = `${ENDPOINT}/package-search`;
24
+ const ENDPOINT_PACKAGE_PRICE_DETAILS = `${ENDPOINT}/package-price-details`;
25
+ const ENDPOINT_CREATE_OFFER = `${ENDPOINT}/offer-entry`;
26
+ const ENDPOINT_CREATE_ENTRY = `${ENDPOINT}/entry-multiroom`;
27
+ const ENDPOINT_CREATE_PACKAGE_OFFER = `${ENDPOINT}/package-offer-entry`;
28
+ const ENDPOINT_CREATE_PACKAGE_ENTRY = `${ENDPOINT}/package-entry`;
29
+ const ENDPOINT_GET_BASE_PRICES = `${ENDPOINT}/base-prices`;
30
+ const ENDPOINT_GET_BASE_PRICES_FROM_DATE = `${ENDPOINT}/base-prices-from-date`;
31
+
32
+ /**
33
+ * api/web/booking/available-products
34
+ * @param config
35
+ * @param request
36
+ * @returns Availabilities (options) for the specified request.
37
+ * @deprecated Use V2: Search
38
+ */
39
+ export const getAvailableProducts = (
40
+ config: TideClientConfig,
41
+ request: AvailableProductsRequest,
42
+ signal?: AbortSignal
43
+ ): Promise<Availability[]> => {
44
+ const url = `${config.host}${ENDPOINT_AVAILABLE_PRODUCTS}`;
45
+ const apiKey = config.apiKey;
46
+ const body = JSON.stringify(request);
47
+
48
+ return post(url, apiKey, body, config.token, signal);
49
+ };
50
+
51
+ /**
52
+ * api/web/booking/package-search
53
+ * @param config
54
+ * @param request
55
+ * @returns Travel options (excursions etc) for a specified product, accommodation and regime.
56
+ * @depracted Use V2: Search
57
+ */
58
+ export const searchPackages = (
59
+ config: TideClientConfig,
60
+ request: PackageSearchRequest,
61
+ signal?: AbortSignal
62
+ ): Promise<CachedPackageSearchResult[]> => {
63
+ const url = `${config.host}${ENDPOINT_PACKAGE_SEARCH}`;
64
+ const apiKey = config.apiKey;
65
+ const body = JSON.stringify(request);
66
+
67
+ return post(url, apiKey, body, config.token, signal);
68
+ };
69
+
70
+ /**
71
+ * api/web/booking/package-price-details
72
+ * @param config
73
+ * @param request
74
+ * @returns A price breakdown for a specified Package (= product and selected options).
75
+ * @deprecated Use V2: Price details
76
+ */
77
+ export const getPackagePriceDetails = (
78
+ config: TideClientConfig,
79
+ request: PackagePriceDetailsRequest,
80
+ signal?: AbortSignal
81
+ ): Promise<PriceDetail[]> => {
82
+ const url = `${config.host}${ENDPOINT_PACKAGE_PRICE_DETAILS}`;
83
+ const apiKey = config.apiKey;
84
+ const body = JSON.stringify(request);
85
+
86
+ return post(url, apiKey, body, config.token, signal);
87
+ };
88
+
89
+ /**
90
+ * api/web/booking/offer-entry
91
+ * Creates an Tide Offer, based on the request.
92
+ * @param config
93
+ * @param request
94
+ * @returns The (full) created offer Entry.
95
+ * @deprecated Use V2: Book
96
+ */
97
+ export const createOffer = (
98
+ config: TideClientConfig,
99
+ request: MultiroomBookRequest,
100
+ signal?: AbortSignal
101
+ ): Promise<Entry> => {
102
+ // Update request to use full response
103
+ request.useShortResponse = false;
104
+
105
+ const url = `${config.host}${ENDPOINT_CREATE_OFFER}`;
106
+ const apiKey = config.apiKey;
107
+ const body = JSON.stringify(request);
108
+
109
+ return post(url, apiKey, body, config.token, signal);
110
+ };
111
+
112
+ /**
113
+ * api/web/booking/offer-entry
114
+ * Creates a Tide Offer, based on the request.
115
+ * @param config
116
+ * @param request
117
+ * @returns The (short) created offer Entry.
118
+ * @deprecated Use V2: Book
119
+ */
120
+ export const createOfferWithShortResponse = (
121
+ config: TideClientConfig,
122
+ request: MultiroomBookRequest,
123
+ signal?: AbortSignal
124
+ ): Promise<BookingResponse> => {
125
+ // Update request to use short response
126
+ request.useShortResponse = true;
127
+
128
+ const url = `${config.host}${ENDPOINT_CREATE_OFFER}`;
129
+ const apiKey = config.apiKey;
130
+ const body = JSON.stringify(request, replacer);
131
+
132
+ return post(url, apiKey, body, config.token, signal);
133
+ };
134
+
135
+ /**
136
+ * api/web/booking/entry-multiroom
137
+ * Creates a Tide Booking, based on the request.
138
+ * @param config
139
+ * @param request
140
+ * @returns The (full) created booking Entry.
141
+ * @deprecated Use V2: Book
142
+ */
143
+ export const createEntry = (
144
+ config: TideClientConfig,
145
+ request: MultiroomBookRequest,
146
+ signal?: AbortSignal
147
+ ): Promise<Entry> => {
148
+ // Update request to use full response
149
+ request.useShortResponse = false;
150
+
151
+ const url = `${config.host}${ENDPOINT_CREATE_ENTRY}`;
152
+ const apiKey = config.apiKey;
153
+ const body = JSON.stringify(request, replacer);
154
+
155
+ return post(url, apiKey, body, config.token, signal);
156
+ };
157
+
158
+ /**
159
+ * api/web/booking/entry-multiroom
160
+ * Creates a Tide Booking, based on the request.
161
+ * @param config
162
+ * @param request
163
+ * @returns The (short) created booking Entry.
164
+ * @deprecated Use V2: Book
165
+ */
166
+ export const createEntryWithShortResponse = (
167
+ config: TideClientConfig,
168
+ request: MultiroomBookRequest,
169
+ signal?: AbortSignal
170
+ ): Promise<BookingResponse> => {
171
+ // Update request to use short response
172
+ request.useShortResponse = true;
173
+
174
+ const url = `${config.host}${ENDPOINT_CREATE_ENTRY}`;
175
+ const apiKey = config.apiKey;
176
+ const body = JSON.stringify(request, replacer);
177
+
178
+ return post(url, apiKey, body, config.token, signal);
179
+ };
180
+
181
+ /**
182
+ * api/web/booking/package-offer-entry
183
+ * Creates a Tide Offer, based on the request.
184
+ * @param config
185
+ * @param request
186
+ * @returns The (full) created offer Entry.
187
+ * @depracted Use V2: Book
188
+ */
189
+ export const createPackageOffer = (
190
+ config: TideClientConfig,
191
+ request: PackageBookRequest,
192
+ signal?: AbortSignal
193
+ ): Promise<Entry> => {
194
+ // Update request to use full response
195
+ request.useShortResponse = false;
196
+
197
+ const url = `${config.host}${ENDPOINT_CREATE_PACKAGE_OFFER}`;
198
+ const apiKey = config.apiKey;
199
+ const body = JSON.stringify(request, replacer);
200
+
201
+ return post(url, apiKey, body, config.token, signal);
202
+ };
203
+
204
+ /**
205
+ * api/web/booking/package-offer-entry
206
+ * Creates a Tide Offer, based on the request.
207
+ * @param config
208
+ * @param request
209
+ * @returns The (short) created offer Entry.
210
+ * @deprecated Use V2: Book
211
+ */
212
+ export const createPackageOfferWithShortResponse = (
213
+ config: TideClientConfig,
214
+ request: PackageBookRequest,
215
+ signal?: AbortSignal
216
+ ): Promise<BookingResponse> => {
217
+ // Update request to use short response
218
+ request.useShortResponse = true;
219
+
220
+ const url = `${config.host}${ENDPOINT_CREATE_PACKAGE_OFFER}`;
221
+ const apiKey = config.apiKey;
222
+ const body = JSON.stringify(request, replacer);
223
+
224
+ return post(url, apiKey, body, config.token, signal);
225
+ };
226
+
227
+ /**
228
+ * api/web/booking/package-entry
229
+ * Create a Tide Booking, based on the request.
230
+ * @param config
231
+ * @param request
232
+ * @returns The (full) created booking Entry.
233
+ * @deprecated Use V2: book
234
+ */
235
+ export const createPackageEntry = (
236
+ config: TideClientConfig,
237
+ request: PackageBookRequest,
238
+ signal?: AbortSignal
239
+ ): Promise<Entry> => {
240
+ // Update request to use full response
241
+ request.useShortResponse = false;
242
+
243
+ const url = `${config.host}${ENDPOINT_CREATE_PACKAGE_ENTRY}`;
244
+ const apiKey = config.apiKey;
245
+ const body = JSON.stringify(request, replacer);
246
+
247
+ return post(url, apiKey, body, config.token, signal);
248
+ };
249
+
250
+ /**
251
+ * api/web/booking/package-entry
252
+ * Create a Tide Booking, based on the request.
253
+ * @param config
254
+ * @param request
255
+ * @returns The (short) created booking Entry.
256
+ * @deprecated Use V2: Book
257
+ */
258
+ export const createPackageEntryWithShortResponse = (
259
+ config: TideClientConfig,
260
+ request: PackageBookRequest,
261
+ signal?: AbortSignal
262
+ ): Promise<BookingResponse> => {
263
+ // Update request to use short response
264
+ request.useShortResponse = true;
265
+
266
+ const url = `${config.host}${ENDPOINT_CREATE_PACKAGE_ENTRY}`;
267
+ const apiKey = config.apiKey;
268
+ const body = JSON.stringify(request, replacer);
269
+
270
+ return post(url, apiKey, body, config.token, signal);
271
+ };
272
+
273
+ /**
274
+ * api/web/booking/base-prices
275
+ * Get base prices of a specific product and accommodation in a defined period.
276
+ * @param config
277
+ * @param request
278
+ * @returns The base prices of a specific product and accommodation during the defined period.
279
+ * @deprecated Use V2: Prices
280
+ */
281
+ export const getBasePrices = (
282
+ config: TideClientConfig,
283
+ request: BasePricesRequest,
284
+ signal?: AbortSignal
285
+ ): Promise<BasePrice[]> => {
286
+ const url = `${config.host}${ENDPOINT_GET_BASE_PRICES}`;
287
+ const apiKey = config.apiKey;
288
+ const body = JSON.stringify(request, replacer);
289
+
290
+ return post(url, apiKey, body, config.token, signal);
291
+ };
292
+
293
+ /**
294
+ * api/web/booking/base-prices-from-date
295
+ * Get base prices of a specific product and accommodation starting from a specific date.
296
+ * @param config
297
+ * @param request
298
+ * @returns The base prices of a specific product and accommodationg starting from a specific date.
299
+ */
300
+ export const getBasePricesFromDate = (
301
+ config: TideClientConfig,
302
+ request: BasePricesFromDateRequest,
303
+ signal?: AbortSignal
304
+ ): Promise<BasePrice[]> => {
305
+ const url = `${config.host}${ENDPOINT_GET_BASE_PRICES_FROM_DATE}`;
306
+ const apiKey = config.apiKey;
307
+ const body = JSON.stringify(request, replacer);
308
+
309
+ return post(url, apiKey, body, config.token, signal);
310
+ };