@qite/tide-client 1.1.22 → 1.1.23

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 (248) hide show
  1. package/build/index.js +8 -0
  2. package/build/index.js.map +1 -1
  3. package/build/types/accommodation-occupancy.d.ts +9 -9
  4. package/build/types/accommodation-with-available-places.d.ts +15 -15
  5. package/build/types/accommodation.d.ts +7 -7
  6. package/build/types/additional-services.d.ts +5 -5
  7. package/build/types/alternative-flight-data.d.ts +10 -10
  8. package/build/types/alternative-flight-leg.d.ts +18 -18
  9. package/build/types/alternative-flight.d.ts +12 -12
  10. package/build/types/availability-request.d.ts +11 -11
  11. package/build/types/availability.d.ts +5 -5
  12. package/build/types/available-products-request.d.ts +28 -28
  13. package/build/types/availablility-request.d.ts +11 -11
  14. package/build/types/duration.d.ts +4 -4
  15. package/build/types/entry-line-meta-data.d.ts +5 -5
  16. package/build/types/enums/online-payment-type.d.ts +3 -3
  17. package/build/types/enums/print-action-group.enum.d.ts +10 -10
  18. package/build/types/flight-leg.d.ts +18 -18
  19. package/build/types/flight.d.ts +23 -23
  20. package/build/types/hotel.d.ts +34 -34
  21. package/build/types/offer/affiliates.d.ts +5 -5
  22. package/build/types/offer/booking-v2/request/booking-package-update-request.d.ts +4 -0
  23. package/build/types/offer/booking-v2/request/index.d.ts +1 -0
  24. package/build/types/offer/booking-v2/request/tour-codes-request.d.ts +3 -3
  25. package/build/types/offer/package-search-response.d.ts +4 -4
  26. package/build/types/option-pax.d.ts +4 -4
  27. package/build/types/option.d.ts +26 -26
  28. package/build/types/package-details-request.d.ts +12 -12
  29. package/build/types/package-flight.d.ts +11 -11
  30. package/build/types/package-flights.d.ts +5 -5
  31. package/build/types/package-option.d.ts +19 -19
  32. package/build/types/package-room-option.d.ts +8 -8
  33. package/build/types/package-room.d.ts +7 -7
  34. package/build/types/package-search-destination.d.ts +9 -9
  35. package/build/types/package-search-request-date.d.ts +4 -4
  36. package/build/types/package-search-request-room.d.ts +5 -5
  37. package/build/types/package-search-request.d.ts +21 -21
  38. package/build/types/package-search-response.d.ts +4 -4
  39. package/build/types/package-search-result.d.ts +12 -12
  40. package/build/types/package-sub-option.d.ts +6 -6
  41. package/build/types/pax.d.ts +4 -4
  42. package/build/types/regime.d.ts +5 -5
  43. package/build/types/traveler-grouping.d.ts +5 -5
  44. package/build/utils/booking-v2-client.d.ts +2 -1
  45. package/build/utils/bookingClient.d.ts +9 -9
  46. package/build/utils/client.d.ts +4 -4
  47. package/package.json +60 -60
  48. package/rollup.config.js +20 -20
  49. package/src/index.ts +69 -69
  50. package/src/types/aapi/accommodation-occupancy.ts +9 -9
  51. package/src/types/aapi/accommodation-with-available-places.ts +15 -15
  52. package/src/types/aapi/accommodation.ts +8 -8
  53. package/src/types/aapi/additional-services.ts +6 -6
  54. package/src/types/aapi/alternative-flight-data.ts +11 -11
  55. package/src/types/aapi/alternative-flight-leg.ts +18 -18
  56. package/src/types/aapi/alternative-flight.ts +13 -13
  57. package/src/types/aapi/availability-request.ts +12 -12
  58. package/src/types/aapi/availability.ts +6 -6
  59. package/src/types/aapi/available-products-request.ts +33 -33
  60. package/src/types/aapi/duration.ts +4 -4
  61. package/src/types/aapi/flight-leg.ts +18 -18
  62. package/src/types/aapi/flight.ts +24 -24
  63. package/src/types/aapi/hotel.ts +36 -36
  64. package/src/types/aapi/index.ts +22 -22
  65. package/src/types/aapi/mollie-payment-request.ts +6 -6
  66. package/src/types/aapi/mollie-payment.ts +3 -3
  67. package/src/types/aapi/option-pax.ts +4 -4
  68. package/src/types/aapi/option.ts +29 -29
  69. package/src/types/aapi/pax.ts +4 -4
  70. package/src/types/aapi/price-detail.ts +8 -8
  71. package/src/types/aapi/regime.ts +5 -5
  72. package/src/types/aapi/traveler-grouping.ts +5 -5
  73. package/src/types/company/agent-print-action-request.ts +11 -11
  74. package/src/types/company/agent-print-action.ts +7 -7
  75. package/src/types/company/index.ts +2 -2
  76. package/src/types/enums/allotment-type.ts +5 -5
  77. package/src/types/enums/availability-search-type.ts +4 -4
  78. package/src/types/enums/dossier-type.ts +6 -6
  79. package/src/types/enums/entry-line-flag.ts +6 -6
  80. package/src/types/enums/entry-line-status.ts +19 -19
  81. package/src/types/enums/entry-status.ts +8 -8
  82. package/src/types/enums/export-status.ts +5 -5
  83. package/src/types/enums/gender.ts +5 -5
  84. package/src/types/enums/index.ts +16 -16
  85. package/src/types/enums/meta-data-type.ts +10 -10
  86. package/src/types/enums/payment-type.ts +6 -6
  87. package/src/types/enums/price-chart-type.ts +4 -4
  88. package/src/types/enums/print-action-group.ts +10 -10
  89. package/src/types/enums/requirement-type.ts +5 -5
  90. package/src/types/enums/room-type.ts +8 -8
  91. package/src/types/enums/sale-type.ts +4 -4
  92. package/src/types/enums/service-type.ts +28 -28
  93. package/src/types/index.ts +27 -27
  94. package/src/types/offer/additional-services.ts +6 -6
  95. package/src/types/offer/address.ts +11 -11
  96. package/src/types/offer/affiliate.ts +5 -5
  97. package/src/types/offer/alternative-flight-data.ts +11 -11
  98. package/src/types/offer/alternative-flight-leg.ts +18 -18
  99. package/src/types/offer/alternative-flight.ts +15 -15
  100. package/src/types/offer/available-package-accommodation.ts +8 -8
  101. package/src/types/offer/available-package-flight.ts +10 -10
  102. package/src/types/offer/available-package-option.ts +18 -18
  103. package/src/types/offer/available-package-pax-price.ts +6 -6
  104. package/src/types/offer/available-package-regime.ts +4 -4
  105. package/src/types/offer/available-package.ts +8 -8
  106. package/src/types/offer/base-price.ts +6 -6
  107. package/src/types/offer/base-prices-from-date-request.ts +12 -12
  108. package/src/types/offer/base-prices-request.ts +12 -12
  109. package/src/types/offer/book-request.ts +38 -38
  110. package/src/types/offer/booking-response.ts +4 -4
  111. package/src/types/offer/booking-v2/index.ts +3 -3
  112. package/src/types/offer/booking-v2/request/bookable-dates-request.ts +4 -4
  113. package/src/types/offer/booking-v2/request/booking-package-address.ts +14 -14
  114. package/src/types/offer/booking-v2/request/booking-package-book-request.ts +22 -22
  115. package/src/types/offer/booking-v2/request/booking-package-destination.ts +9 -9
  116. package/src/types/offer/booking-v2/request/booking-package-details-request.ts +24 -24
  117. package/src/types/offer/booking-v2/request/booking-package-flight-pool-request.ts +13 -13
  118. package/src/types/offer/booking-v2/request/booking-package-request.ts +5 -5
  119. package/src/types/offer/booking-v2/request/booking-package-search-request.ts +29 -29
  120. package/src/types/offer/booking-v2/request/booking-package-update-request.ts +5 -0
  121. package/src/types/offer/booking-v2/request/booking-package-voucher-request.ts +4 -4
  122. package/src/types/offer/booking-v2/request/index.ts +13 -12
  123. package/src/types/offer/booking-v2/request/selected-flight.ts +6 -6
  124. package/src/types/offer/booking-v2/request/selected-hotel.ts +5 -5
  125. package/src/types/offer/booking-v2/request/tour-codes.request.ts +3 -3
  126. package/src/types/offer/booking-v2/response/bookable-dates.ts +4 -4
  127. package/src/types/offer/booking-v2/response/booking-package-allotment-info.ts +17 -17
  128. package/src/types/offer/booking-v2/response/booking-package-dossier.ts +6 -6
  129. package/src/types/offer/booking-v2/response/booking-package-flight-pool.ts +6 -6
  130. package/src/types/offer/booking-v2/response/booking-package-hotel-pool.ts +5 -5
  131. package/src/types/offer/booking-v2/response/booking-package-item.ts +40 -40
  132. package/src/types/offer/booking-v2/response/booking-price-detail.ts +19 -19
  133. package/src/types/offer/booking-v2/response/booking-price-details.ts +10 -10
  134. package/src/types/offer/booking-v2/response/booking-price-per-pax.ts +4 -4
  135. package/src/types/offer/booking-v2/response/booking-product-notification.ts +7 -7
  136. package/src/types/offer/booking-v2/response/booking-travel-agent.ts +7 -7
  137. package/src/types/offer/booking-v2/response/booking-voucher-result.ts +3 -3
  138. package/src/types/offer/booking-v2/response/changed-line.ts +4 -4
  139. package/src/types/offer/booking-v2/response/index.ts +15 -15
  140. package/src/types/offer/booking-v2/response/tide-response.ts +6 -6
  141. package/src/types/offer/booking-v2/response/tour-codes-response.ts +3 -3
  142. package/src/types/offer/booking-v2/shared/booking-option-group.ts +5 -5
  143. package/src/types/offer/booking-v2/shared/booking-option-pax.ts +8 -8
  144. package/src/types/offer/booking-v2/shared/booking-option-unit.ts +7 -7
  145. package/src/types/offer/booking-v2/shared/booking-package-availability.ts +7 -7
  146. package/src/types/offer/booking-v2/shared/booking-package-flight-meta-data-line.ts +17 -17
  147. package/src/types/offer/booking-v2/shared/booking-package-flight-meta-data.ts +11 -11
  148. package/src/types/offer/booking-v2/shared/booking-package-flight.ts +15 -15
  149. package/src/types/offer/booking-v2/shared/booking-package-hotel-option.ts +10 -10
  150. package/src/types/offer/booking-v2/shared/booking-package-hotel-room.ts +6 -6
  151. package/src/types/offer/booking-v2/shared/booking-package-hotel.ts +25 -25
  152. package/src/types/offer/booking-v2/shared/booking-package-line.ts +12 -12
  153. package/src/types/offer/booking-v2/shared/booking-package-option.ts +48 -48
  154. package/src/types/offer/booking-v2/shared/booking-package-pax.ts +19 -19
  155. package/src/types/offer/booking-v2/shared/booking-package-request-room.ts +6 -6
  156. package/src/types/offer/booking-v2/shared/booking-package-room-option.ts +17 -17
  157. package/src/types/offer/booking-v2/shared/booking-package-room.ts +6 -6
  158. package/src/types/offer/booking-v2/shared/booking-package-tag.ts +5 -5
  159. package/src/types/offer/booking-v2/shared/booking-package.ts +13 -13
  160. package/src/types/offer/booking-v2/shared/index.ts +19 -19
  161. package/src/types/offer/booking-v2/shared/per-booking-package-option.ts +10 -10
  162. package/src/types/offer/booking-v2/shared/per-package-option.ts +10 -10
  163. package/src/types/offer/booking-v2/shared/per-pax-package-option.ts +6 -6
  164. package/src/types/offer/booking-v2/shared/per-unit-package-option.ts +8 -8
  165. package/src/types/offer/cached-package-search-result.ts +6 -6
  166. package/src/types/offer/confirmed-dossier-check.ts +6 -6
  167. package/src/types/offer/country-item.ts +4 -4
  168. package/src/types/offer/crm-contact-request.ts +37 -37
  169. package/src/types/offer/customer-request.ts +5 -5
  170. package/src/types/offer/dossier-default-product.ts +14 -14
  171. package/src/types/offer/entry-check-response.ts +5 -5
  172. package/src/types/offer/entry-line-meta-data.ts +5 -5
  173. package/src/types/offer/entry-line-pax.ts +9 -9
  174. package/src/types/offer/entry-line.ts +74 -74
  175. package/src/types/offer/entry-price-line.ts +40 -40
  176. package/src/types/offer/entry-room2.ts +5 -5
  177. package/src/types/offer/entry.ts +60 -60
  178. package/src/types/offer/flight-meta-data-line.ts +16 -16
  179. package/src/types/offer/flight-meta-data.ts +15 -15
  180. package/src/types/offer/flight-pool.ts +6 -6
  181. package/src/types/offer/index.ts +72 -72
  182. package/src/types/offer/language.ts +5 -5
  183. package/src/types/offer/member-confirmation-request.ts +5 -5
  184. package/src/types/offer/member-forgot-password-request.ts +4 -4
  185. package/src/types/offer/member-info.ts +10 -10
  186. package/src/types/offer/member-login-request.ts +4 -4
  187. package/src/types/offer/member-reset-password-request.ts +4 -4
  188. package/src/types/offer/multiroom-book-request.ts +11 -11
  189. package/src/types/offer/note.ts +16 -16
  190. package/src/types/offer/other-product.ts +14 -14
  191. package/src/types/offer/package-book-request-room.ts +6 -6
  192. package/src/types/offer/package-book-request.ts +13 -13
  193. package/src/types/offer/package-flight.ts +14 -14
  194. package/src/types/offer/package-flights.ts +6 -6
  195. package/src/types/offer/package-option.ts +23 -23
  196. package/src/types/offer/package-price-details-request-room.ts +4 -4
  197. package/src/types/offer/package-price-details-request.ts +9 -9
  198. package/src/types/offer/package-room-option.ts +10 -10
  199. package/src/types/offer/package-room.ts +8 -8
  200. package/src/types/offer/package-search-destination.ts +9 -9
  201. package/src/types/offer/package-search-request-date.ts +4 -4
  202. package/src/types/offer/package-search-request-room.ts +5 -5
  203. package/src/types/offer/package-search-request.ts +23 -23
  204. package/src/types/offer/package-search-result.ts +13 -13
  205. package/src/types/offer/package-sub-option.ts +6 -6
  206. package/src/types/offer/page-result.ts +5 -5
  207. package/src/types/offer/pax.ts +30 -30
  208. package/src/types/offer/payment.ts +20 -20
  209. package/src/types/offer/person-country-preference.ts +7 -7
  210. package/src/types/offer/person-location-preference.ts +7 -7
  211. package/src/types/offer/person-oord-preference.ts +7 -7
  212. package/src/types/offer/person-period-date-range-preference.ts +6 -6
  213. package/src/types/offer/person-period-preference.ts +7 -7
  214. package/src/types/offer/person-region-preference.ts +7 -7
  215. package/src/types/offer/person-tour-group-preference.ts +7 -7
  216. package/src/types/offer/price-detail.ts +19 -19
  217. package/src/types/offer/price-per-pax.ts +6 -6
  218. package/src/types/offer/product-notification-result.ts +9 -9
  219. package/src/types/offer/web-contact-form-request.ts +13 -13
  220. package/src/types/offer/web-contact-has-tag-request.ts +4 -4
  221. package/src/types/tide-client-config.ts +4 -4
  222. package/src/utils/booking-client.ts +310 -310
  223. package/src/utils/booking-v2-client.ts +208 -194
  224. package/src/utils/common-client.ts +33 -33
  225. package/src/utils/json.ts +26 -26
  226. package/src/utils/member-client.ts +76 -76
  227. package/src/utils/mollie-client.ts +27 -27
  228. package/src/utils/search-client.ts +22 -22
  229. package/src/utils/web-client.ts +46 -46
  230. package/src/utils/web-contact-client.ts +43 -43
  231. package/src/utils/web-file.ts +24 -24
  232. package/tests/bookingClient.test.ts +728 -728
  233. package/tests/mocks/available-products.json +183 -183
  234. package/tests/mocks/base-prices-from-date.json +74 -74
  235. package/tests/mocks/base-prices.json +236 -236
  236. package/tests/mocks/entry-multiroom.json +2043 -2043
  237. package/tests/mocks/entry-multiroom.short.json +4 -4
  238. package/tests/mocks/offer-entry.json +2043 -2043
  239. package/tests/mocks/offer-entry.short.json +4 -4
  240. package/tests/mocks/package-entry.json +2043 -2043
  241. package/tests/mocks/package-entry.short.json +4 -4
  242. package/tests/mocks/package-offer-entry.json +2043 -2043
  243. package/tests/mocks/package-offer-entry.short.json +4 -4
  244. package/tests/mocks/package-price-details.json +176 -176
  245. package/tests/mocks/package-search.json +179 -179
  246. package/tests/webClient.test.ts +38 -38
  247. package/tests/webContactClient.test.ts +61 -61
  248. package/tsconfig.json +23 -23
@@ -1,194 +1,208 @@
1
- import { PackageSearchRequest, TideClientConfig } from "..";
2
-
3
- import {
4
- AvailablePackage,
5
- BookableDates,
6
- BookableDatesRequest,
7
- BookingPackage,
8
- BookingPackageBookRequest,
9
- BookingPackageDetailsRequest,
10
- BookingPackageDossier,
11
- BookingPackageFlightPool,
12
- BookingPackageFlightPoolRequest,
13
- BookingPackageHotelPool,
14
- BookingPackageItem,
15
- BookingPackageRequest,
16
- BookingPackageSearchRequest,
17
- BookingPackageVoucherRequest,
18
- BookingPriceDetails,
19
- BookingTravelAgent,
20
- BookingVoucherResult,
21
- TideResponse,
22
- TourCodesRequest,
23
- TourCodesResponse,
24
- } from "../types";
25
- import { BookingPackageAvailability } from "../types/offer/booking-v2/shared/booking-package-availability";
26
- import { get, post } from "./common-client";
27
-
28
- const ENDPOINT = "/api/web/booking/v2";
29
- const ENDPOINT_PACKAGE_SEARCH_LIST = `${ENDPOINT}/package-search-list`;
30
- const ENDPOINT_SEARCH = `${ENDPOINT}/search`;
31
- const ENDPOINT_DETAILS = `${ENDPOINT}/details`;
32
- const ENDPOINT_VALIDATE_VOUCHER = `${ENDPOINT}/validate-voucher`;
33
- const ENDPOINT_ALTERNATE_HOTELS = `/alternate-hotels`;
34
- const ENDPOINT_ALTERNATE_FLIGHTS = `/alternate-flights`;
35
- const ENDPOINT_PRICE_DETAILS = `${ENDPOINT}/price-details`;
36
- const ENDPOINT_BOOK = `${ENDPOINT}/book`;
37
- const ENDPOINT_AGENTS = `${ENDPOINT}/agents`;
38
- const ENDPOINT_AVAILABLE_ALLOTMENTS = `${ENDPOINT}/get-allotment-availability`;
39
- const ENDPOINT_FLIGHT_POOL = `${ENDPOINT}/flight-pool`;
40
- const ENDPOINT_BOOKABLE_DATES = `${ENDPOINT}/bookable-dates`;
41
- const ENDPOINT_TOUR_CODES = `${ENDPOINT}/tourcodes`;
42
-
43
- export const readPackageSearchList = (
44
- config: TideClientConfig,
45
- request: PackageSearchRequest,
46
- signal?: AbortSignal
47
- ): Promise<AvailablePackage[]> => {
48
- const url = `${config.host}${ENDPOINT_PACKAGE_SEARCH_LIST}`;
49
- const apiKey = config.apiKey;
50
- const body = JSON.stringify(request);
51
-
52
- return post(url, apiKey, body, signal);
53
- };
54
-
55
- // PACKAGE SEARCH
56
- export const search = (
57
- config: TideClientConfig,
58
- request: BookingPackageRequest<BookingPackageSearchRequest>,
59
- signal?: AbortSignal
60
- ): Promise<BookingPackageItem[]> => {
61
- const url = `${config.host}${ENDPOINT_SEARCH}`;
62
- const apiKey = config.apiKey;
63
- const body = JSON.stringify(request);
64
-
65
- return post(url, apiKey, body, signal, true);
66
- };
67
-
68
- export const details = (
69
- config: TideClientConfig,
70
- request: BookingPackageRequest<BookingPackageDetailsRequest>,
71
- signal?: AbortSignal
72
- ): Promise<TideResponse<BookingPackage>> => {
73
- const url = `${config.host}${ENDPOINT_DETAILS}`;
74
- const apiKey = config.apiKey;
75
- const body = JSON.stringify(request);
76
-
77
- return post(url, apiKey, body, signal, true);
78
- };
79
-
80
- export const validateVoucher = (
81
- config: TideClientConfig,
82
- request: BookingPackageRequest<BookingPackageVoucherRequest>,
83
- signal?: AbortSignal
84
- ): Promise<TideResponse<BookingVoucherResult>> => {
85
- const url = `${config.host}${ENDPOINT_VALIDATE_VOUCHER}`;
86
- const apiKey = config.apiKey;
87
- const body = JSON.stringify(request);
88
-
89
- return post(url, apiKey, body, signal, true);
90
- };
91
-
92
- export const alternateHotels = (
93
- config: TideClientConfig,
94
- transactionId: string,
95
- signal?: AbortSignal
96
- ): Promise<BookingPackageHotelPool> => {
97
- const url = `${config.host}${ENDPOINT_DETAILS}/${transactionId}${ENDPOINT_ALTERNATE_HOTELS}`;
98
- const apiKey = config.apiKey;
99
-
100
- return get(url, apiKey, signal, true);
101
- };
102
-
103
- export const alternateFlights = (
104
- config: TideClientConfig,
105
- transactionId: string,
106
- signal?: AbortSignal
107
- ): Promise<BookingPackageFlightPool> => {
108
- const url = `${config.host}${ENDPOINT_DETAILS}/${transactionId}${ENDPOINT_ALTERNATE_FLIGHTS}`;
109
- const apiKey = config.apiKey;
110
-
111
- return get(url, apiKey, signal, true);
112
- };
113
-
114
- export const priceDetails = (
115
- config: TideClientConfig,
116
- request: BookingPackageRequest<BookingPackageBookRequest>,
117
- signal?: AbortSignal
118
- ): Promise<BookingPriceDetails> => {
119
- const url = `${config.host}${ENDPOINT_PRICE_DETAILS}`;
120
- const apiKey = config.apiKey;
121
- const body = JSON.stringify(request);
122
-
123
- return post(url, apiKey, body, signal, true);
124
- };
125
-
126
- export const book = (
127
- config: TideClientConfig,
128
- request: BookingPackageRequest<BookingPackageBookRequest>,
129
- signal?: AbortSignal
130
- ): Promise<BookingPackageDossier> => {
131
- const url = `${config.host}${ENDPOINT_BOOK}`;
132
- const apiKey = config.apiKey;
133
- const body = JSON.stringify(request);
134
-
135
- return post(url, apiKey, body, signal, true);
136
- };
137
-
138
- export const agents = (
139
- config: TideClientConfig,
140
- signal?: AbortSignal
141
- ): Promise<BookingTravelAgent[]> => {
142
- const url = `${config.host}${ENDPOINT_AGENTS}`;
143
- const apiKey = config.apiKey;
144
-
145
- return get(url, apiKey, signal, true);
146
- };
147
-
148
- export const getAllotmentAvailability = (
149
- config: TideClientConfig,
150
- eventId: string,
151
- productCode: string,
152
- signal?: AbortSignal
153
- ): Promise<BookingPackageAvailability[]> => {
154
- const url = `${config.host}${ENDPOINT_AVAILABLE_ALLOTMENTS}/${eventId}/${productCode}`;
155
- const apiKey = config.apiKey;
156
-
157
- return get(url, apiKey, signal, true);
158
- };
159
-
160
- export const searchFlightPool = (
161
- config: TideClientConfig,
162
- request: BookingPackageRequest<BookingPackageFlightPoolRequest>,
163
- signal?: AbortSignal
164
- ): Promise<BookingPackageFlightPool> => {
165
- const url = `${config.host}${ENDPOINT_FLIGHT_POOL}`;
166
- const apiKey = config.apiKey;
167
- const body = JSON.stringify(request);
168
-
169
- return post(url, apiKey, body, signal, true);
170
- };
171
-
172
- export const bookableDates = (
173
- config: TideClientConfig,
174
- request: BookableDatesRequest,
175
- signal?: AbortSignal
176
- ): Promise<BookableDates> => {
177
- const url = `${config.host}${ENDPOINT_BOOKABLE_DATES}`;
178
- const apiKey = config.apiKey;
179
- const body = JSON.stringify(request);
180
-
181
- return post(url, apiKey, body, signal, true);
182
- };
183
-
184
- export const tourCodes = (
185
- config: TideClientConfig,
186
- request: TourCodesRequest,
187
- signal?: AbortSignal
188
- ): Promise<TourCodesResponse> => {
189
- const url = `${config.host}${ENDPOINT_TOUR_CODES}`;
190
- const apiKey = config.apiKey;
191
- const body = JSON.stringify(request);
192
-
193
- return post(url, apiKey, body, signal, true);
194
- };
1
+ import { PackageSearchRequest, TideClientConfig } from "..";
2
+
3
+ import {
4
+ AvailablePackage,
5
+ BookableDates,
6
+ BookableDatesRequest,
7
+ BookingPackage,
8
+ BookingPackageBookRequest,
9
+ BookingPackageDetailsRequest,
10
+ BookingPackageDossier,
11
+ BookingPackageFlightPool,
12
+ BookingPackageFlightPoolRequest,
13
+ BookingPackageHotelPool,
14
+ BookingPackageItem,
15
+ BookingPackageRequest,
16
+ BookingPackageSearchRequest,
17
+ BookingPackageUpdateRequest,
18
+ BookingPackageVoucherRequest,
19
+ BookingPriceDetails,
20
+ BookingTravelAgent,
21
+ BookingVoucherResult,
22
+ TideResponse,
23
+ TourCodesRequest,
24
+ TourCodesResponse,
25
+ } from "../types";
26
+ import { BookingPackageAvailability } from "../types/offer/booking-v2/shared/booking-package-availability";
27
+ import { get, post } from "./common-client";
28
+
29
+ const ENDPOINT = "/api/web/booking/v2";
30
+ const ENDPOINT_PACKAGE_SEARCH_LIST = `${ENDPOINT}/package-search-list`;
31
+ const ENDPOINT_SEARCH = `${ENDPOINT}/search`;
32
+ const ENDPOINT_DETAILS = `${ENDPOINT}/details`;
33
+ const ENDPOINT_VALIDATE_VOUCHER = `${ENDPOINT}/validate-voucher`;
34
+ const ENDPOINT_ALTERNATE_HOTELS = `/alternate-hotels`;
35
+ const ENDPOINT_ALTERNATE_FLIGHTS = `/alternate-flights`;
36
+ const ENDPOINT_PRICE_DETAILS = `${ENDPOINT}/price-details`;
37
+ const ENDPOINT_BOOK = `${ENDPOINT}/book`;
38
+ const ENDPOINT_UPDATE = `${ENDPOINT}/update`;
39
+ const ENDPOINT_AGENTS = `${ENDPOINT}/agents`;
40
+ const ENDPOINT_AVAILABLE_ALLOTMENTS = `${ENDPOINT}/get-allotment-availability`;
41
+ const ENDPOINT_FLIGHT_POOL = `${ENDPOINT}/flight-pool`;
42
+ const ENDPOINT_BOOKABLE_DATES = `${ENDPOINT}/bookable-dates`;
43
+ const ENDPOINT_TOUR_CODES = `${ENDPOINT}/tourcodes`;
44
+
45
+ export const readPackageSearchList = (
46
+ config: TideClientConfig,
47
+ request: PackageSearchRequest,
48
+ signal?: AbortSignal
49
+ ): Promise<AvailablePackage[]> => {
50
+ const url = `${config.host}${ENDPOINT_PACKAGE_SEARCH_LIST}`;
51
+ const apiKey = config.apiKey;
52
+ const body = JSON.stringify(request);
53
+
54
+ return post(url, apiKey, body, signal);
55
+ };
56
+
57
+ // PACKAGE SEARCH
58
+ export const search = (
59
+ config: TideClientConfig,
60
+ request: BookingPackageRequest<BookingPackageSearchRequest>,
61
+ signal?: AbortSignal
62
+ ): Promise<BookingPackageItem[]> => {
63
+ const url = `${config.host}${ENDPOINT_SEARCH}`;
64
+ const apiKey = config.apiKey;
65
+ const body = JSON.stringify(request);
66
+
67
+ return post(url, apiKey, body, signal, true);
68
+ };
69
+
70
+ export const details = (
71
+ config: TideClientConfig,
72
+ request: BookingPackageRequest<BookingPackageDetailsRequest>,
73
+ signal?: AbortSignal
74
+ ): Promise<TideResponse<BookingPackage>> => {
75
+ const url = `${config.host}${ENDPOINT_DETAILS}`;
76
+ const apiKey = config.apiKey;
77
+ const body = JSON.stringify(request);
78
+
79
+ return post(url, apiKey, body, signal, true);
80
+ };
81
+
82
+ export const validateVoucher = (
83
+ config: TideClientConfig,
84
+ request: BookingPackageRequest<BookingPackageVoucherRequest>,
85
+ signal?: AbortSignal
86
+ ): Promise<TideResponse<BookingVoucherResult>> => {
87
+ const url = `${config.host}${ENDPOINT_VALIDATE_VOUCHER}`;
88
+ const apiKey = config.apiKey;
89
+ const body = JSON.stringify(request);
90
+
91
+ return post(url, apiKey, body, signal, true);
92
+ };
93
+
94
+ export const alternateHotels = (
95
+ config: TideClientConfig,
96
+ transactionId: string,
97
+ signal?: AbortSignal
98
+ ): Promise<BookingPackageHotelPool> => {
99
+ const url = `${config.host}${ENDPOINT_DETAILS}/${transactionId}${ENDPOINT_ALTERNATE_HOTELS}`;
100
+ const apiKey = config.apiKey;
101
+
102
+ return get(url, apiKey, signal, true);
103
+ };
104
+
105
+ export const alternateFlights = (
106
+ config: TideClientConfig,
107
+ transactionId: string,
108
+ signal?: AbortSignal
109
+ ): Promise<BookingPackageFlightPool> => {
110
+ const url = `${config.host}${ENDPOINT_DETAILS}/${transactionId}${ENDPOINT_ALTERNATE_FLIGHTS}`;
111
+ const apiKey = config.apiKey;
112
+
113
+ return get(url, apiKey, signal, true);
114
+ };
115
+
116
+ export const priceDetails = (
117
+ config: TideClientConfig,
118
+ request: BookingPackageRequest<BookingPackageBookRequest>,
119
+ signal?: AbortSignal
120
+ ): Promise<BookingPriceDetails> => {
121
+ const url = `${config.host}${ENDPOINT_PRICE_DETAILS}`;
122
+ const apiKey = config.apiKey;
123
+ const body = JSON.stringify(request);
124
+
125
+ return post(url, apiKey, body, signal, true);
126
+ };
127
+
128
+ export const book = (
129
+ config: TideClientConfig,
130
+ request: BookingPackageRequest<BookingPackageBookRequest>,
131
+ signal?: AbortSignal
132
+ ): Promise<BookingPackageDossier> => {
133
+ const url = `${config.host}${ENDPOINT_BOOK}`;
134
+ const apiKey = config.apiKey;
135
+ const body = JSON.stringify(request);
136
+
137
+ return post(url, apiKey, body, signal, true);
138
+ };
139
+
140
+ export const update = (
141
+ config: TideClientConfig,
142
+ request: BookingPackageRequest<BookingPackageUpdateRequest>,
143
+ signal?: AbortSignal
144
+ ): Promise<BookingPackageDossier> => {
145
+ const url = `${config.host}${ENDPOINT_UPDATE}`;
146
+ const apiKey = config.apiKey;
147
+ const body = JSON.stringify(request);
148
+
149
+ return post(url, apiKey, body, signal, true);
150
+ };
151
+
152
+ export const agents = (
153
+ config: TideClientConfig,
154
+ signal?: AbortSignal
155
+ ): Promise<BookingTravelAgent[]> => {
156
+ const url = `${config.host}${ENDPOINT_AGENTS}`;
157
+ const apiKey = config.apiKey;
158
+
159
+ return get(url, apiKey, signal, true);
160
+ };
161
+
162
+ export const getAllotmentAvailability = (
163
+ config: TideClientConfig,
164
+ eventId: string,
165
+ productCode: string,
166
+ signal?: AbortSignal
167
+ ): Promise<BookingPackageAvailability[]> => {
168
+ const url = `${config.host}${ENDPOINT_AVAILABLE_ALLOTMENTS}/${eventId}/${productCode}`;
169
+ const apiKey = config.apiKey;
170
+
171
+ return get(url, apiKey, signal, true);
172
+ };
173
+
174
+ export const searchFlightPool = (
175
+ config: TideClientConfig,
176
+ request: BookingPackageRequest<BookingPackageFlightPoolRequest>,
177
+ signal?: AbortSignal
178
+ ): Promise<BookingPackageFlightPool> => {
179
+ const url = `${config.host}${ENDPOINT_FLIGHT_POOL}`;
180
+ const apiKey = config.apiKey;
181
+ const body = JSON.stringify(request);
182
+
183
+ return post(url, apiKey, body, signal, true);
184
+ };
185
+
186
+ export const bookableDates = (
187
+ config: TideClientConfig,
188
+ request: BookableDatesRequest,
189
+ signal?: AbortSignal
190
+ ): Promise<BookableDates> => {
191
+ const url = `${config.host}${ENDPOINT_BOOKABLE_DATES}`;
192
+ const apiKey = config.apiKey;
193
+ const body = JSON.stringify(request);
194
+
195
+ return post(url, apiKey, body, signal, true);
196
+ };
197
+
198
+ export const tourCodes = (
199
+ config: TideClientConfig,
200
+ request: TourCodesRequest,
201
+ signal?: AbortSignal
202
+ ): Promise<TourCodesResponse> => {
203
+ const url = `${config.host}${ENDPOINT_TOUR_CODES}`;
204
+ const apiKey = config.apiKey;
205
+ const body = JSON.stringify(request);
206
+
207
+ return post(url, apiKey, body, signal, true);
208
+ };
@@ -1,33 +1,33 @@
1
- import { post as apiPost, get as apiGet } from "./api";
2
- import { reviver } from "./json";
3
-
4
- export const post = async <T>(
5
- url: string,
6
- apiKey: string,
7
- body: string,
8
- signal?: AbortSignal,
9
- skipReviver?: boolean
10
- ): Promise<T> => {
11
- const response = await apiPost(url, apiKey, body, signal);
12
- const responseBody = await response.text();
13
-
14
- const result: T = skipReviver
15
- ? JSON.parse(responseBody ?? "")
16
- : JSON.parse(responseBody ?? "", reviver);
17
- return result;
18
- };
19
-
20
- export const get = async <T>(
21
- url: string,
22
- apiKey: string,
23
- signal?: AbortSignal,
24
- skipReviver?: boolean
25
- ): Promise<T> => {
26
- const response = await apiGet(url, apiKey, signal);
27
- const responseBody = await response.text();
28
-
29
- const result: T = skipReviver
30
- ? JSON.parse(responseBody)
31
- : JSON.parse(responseBody, reviver);
32
- return result;
33
- };
1
+ import { post as apiPost, get as apiGet } from "./api";
2
+ import { reviver } from "./json";
3
+
4
+ export const post = async <T>(
5
+ url: string,
6
+ apiKey: string,
7
+ body: string,
8
+ signal?: AbortSignal,
9
+ skipReviver?: boolean
10
+ ): Promise<T> => {
11
+ const response = await apiPost(url, apiKey, body, signal);
12
+ const responseBody = await response.text();
13
+
14
+ const result: T = skipReviver
15
+ ? JSON.parse(responseBody ?? "")
16
+ : JSON.parse(responseBody ?? "", reviver);
17
+ return result;
18
+ };
19
+
20
+ export const get = async <T>(
21
+ url: string,
22
+ apiKey: string,
23
+ signal?: AbortSignal,
24
+ skipReviver?: boolean
25
+ ): Promise<T> => {
26
+ const response = await apiGet(url, apiKey, signal);
27
+ const responseBody = await response.text();
28
+
29
+ const result: T = skipReviver
30
+ ? JSON.parse(responseBody)
31
+ : JSON.parse(responseBody, reviver);
32
+ return result;
33
+ };
package/src/utils/json.ts CHANGED
@@ -1,26 +1,26 @@
1
- import moment from "moment";
2
-
3
- export const reviver = (_: any, value: any) => {
4
- const formats = [moment.ISO_8601, "MM/DD/YYYY"];
5
- if (typeof value === "string") {
6
- if (moment(value, formats, true).isValid()) {
7
- return new Date(value);
8
- }
9
- }
10
- return value;
11
- };
12
-
13
- export const replacer = (_: any, value: any) => {
14
- if (typeof value === "string") {
15
- if (Date.parse(value)) {
16
- const date = new Date(value);
17
- if (date.toISOString() === value) {
18
- const year = date.getFullYear();
19
- const month = date.getMonth() + 1;
20
- const day = date.getDate();
21
- return `${year}-${month}-${day}`;
22
- }
23
- }
24
- }
25
- return value;
26
- };
1
+ import moment from "moment";
2
+
3
+ export const reviver = (_: any, value: any) => {
4
+ const formats = [moment.ISO_8601, "MM/DD/YYYY"];
5
+ if (typeof value === "string") {
6
+ if (moment(value, formats, true).isValid()) {
7
+ return new Date(value);
8
+ }
9
+ }
10
+ return value;
11
+ };
12
+
13
+ export const replacer = (_: any, value: any) => {
14
+ if (typeof value === "string") {
15
+ if (Date.parse(value)) {
16
+ const date = new Date(value);
17
+ if (date.toISOString() === value) {
18
+ const year = date.getFullYear();
19
+ const month = date.getMonth() + 1;
20
+ const day = date.getDate();
21
+ return `${year}-${month}-${day}`;
22
+ }
23
+ }
24
+ }
25
+ return value;
26
+ };