@qite/tide-client 1.1.22 → 1.1.24

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