@tripian/core 9.3.3 → 9.3.7

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 (83) hide show
  1. package/CLAUDE.md +7 -0
  2. package/Random.js +286 -0
  3. package/Random.js.map +1 -0
  4. package/api/API.d.ts +5 -0
  5. package/api/API.js +1663 -0
  6. package/api/API.js.map +1 -0
  7. package/api/CLAUDE.md +7 -0
  8. package/api/const/APICONST.js +233 -0
  9. package/api/const/APICONST.js.map +1 -0
  10. package/api/const/ApiConstModel.d.ts +2 -0
  11. package/api/const/ApiConstModel.js +3 -0
  12. package/api/const/ApiConstModel.js.map +1 -0
  13. package/api/const/CLAUDE.md +7 -0
  14. package/data/data.js +121 -0
  15. package/data/data.js.map +1 -0
  16. package/data/dataClear.js +50 -0
  17. package/data/dataClear.js.map +1 -0
  18. package/data/dataModel.js +3 -0
  19. package/data/dataModel.js.map +1 -0
  20. package/easy/TDate.js +49 -0
  21. package/easy/TDate.js.map +1 -0
  22. package/easy/easy.js +90 -0
  23. package/easy/easy.js.map +1 -0
  24. package/easy/handle/cache/Cached.js +274 -0
  25. package/easy/handle/cache/Cached.js.map +1 -0
  26. package/easy/handle/cache/cache.js +512 -0
  27. package/easy/handle/cache/cache.js.map +1 -0
  28. package/easy/handle/cache/cacheCommon.js +20 -0
  29. package/easy/handle/cache/cacheCommon.js.map +1 -0
  30. package/easy/handle/cache/cacheHelper.js +349 -0
  31. package/easy/handle/cache/cacheHelper.js.map +1 -0
  32. package/easy/handle/handle.js +61 -0
  33. package/easy/handle/handle.js.map +1 -0
  34. package/index.js +2 -2
  35. package/package.json +2 -2
  36. package/providers/bb/API.js +3605 -0
  37. package/providers/bb/API.js.map +1 -0
  38. package/providers/gyg/API.js +446 -0
  39. package/providers/gyg/API.js.map +1 -0
  40. package/providers/gyg/allCategories.js +2501 -0
  41. package/providers/gyg/allCategories.js.map +1 -0
  42. package/providers/gyg/catalogCategoryIds.js +22 -0
  43. package/providers/gyg/catalogCategoryIds.js.map +1 -0
  44. package/providers/gyg/handle.js +81 -0
  45. package/providers/gyg/handle.js.map +1 -0
  46. package/providers/gyg/mockTour.js +145 -0
  47. package/providers/gyg/mockTour.js.map +1 -0
  48. package/providers/radial-storage/API.js +25 -0
  49. package/providers/radial-storage/API.js.map +1 -0
  50. package/providers/rezdy/API.js +40 -0
  51. package/providers/rezdy/API.js.map +1 -0
  52. package/providers/toristy/API.js +69 -0
  53. package/providers/toristy/API.js.map +1 -0
  54. package/providers/travelify/API.js +72 -0
  55. package/providers/travelify/API.js.map +1 -0
  56. package/providers/viator/API.js +313 -0
  57. package/providers/viator/API.js.map +1 -0
  58. package/providers/viator/bookingQuestions.js +289 -0
  59. package/providers/viator/bookingQuestions.js.map +1 -0
  60. package/providers/viator/handle.js +48 -0
  61. package/providers/viator/handle.js.map +1 -0
  62. package/providers/victory/API.js +237 -0
  63. package/providers/victory/API.js.map +1 -0
  64. package/providers/videreo/API.js +29 -0
  65. package/providers/videreo/API.js.map +1 -0
  66. package/providers/yelp/API.js +151 -0
  67. package/providers/yelp/API.js.map +1 -0
  68. package/providers/yelp/data/business_test.js +37 -0
  69. package/providers/yelp/data/business_test.js.map +1 -0
  70. package/providers/yelp/data/hold_test.js +14 -0
  71. package/providers/yelp/data/hold_test.js.map +1 -0
  72. package/providers/yelp/data/openings_test.js +194 -0
  73. package/providers/yelp/data/openings_test.js.map +1 -0
  74. package/providers/yelp/data/reservation_test.js +9 -0
  75. package/providers/yelp/data/reservation_test.js.map +1 -0
  76. package/tcore.umd.js +2 -2
  77. package/tcore.umd.js.map +1 -1
  78. package/xhr/IXhrOptions.js +3 -0
  79. package/xhr/IXhrOptions.js.map +1 -0
  80. package/xhr/xhr.js +105 -0
  81. package/xhr/xhr.js.map +1 -0
  82. package/xhr/xhrFetch.js +214 -0
  83. package/xhr/xhrFetch.js.map +1 -0
package/api/API.js ADDED
@@ -0,0 +1,1663 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ /* eslint-disable no-param-reassign */
30
+ // eslint-disable-next-line import/no-extraneous-dependencies
31
+ const model_1 = __importStar(require("@tripian/model"));
32
+ const moment_1 = __importDefault(require("moment"));
33
+ // import XHR from '../xhr/xhr';
34
+ const xhrFetch_1 = __importDefault(require("../xhr/xhrFetch"));
35
+ const APICONST_1 = __importDefault(require("./const/APICONST"));
36
+ const easy_1 = __importDefault(require("../easy/easy"));
37
+ const Cached_1 = __importDefault(require("../easy/handle/cache/Cached"));
38
+ const cacheCommon_1 = require("../easy/handle/cache/cacheCommon");
39
+ const dataClear_1 = __importDefault(require("../data/dataClear"));
40
+ const sleep = async (milisecond = 750) => {
41
+ // console.log(milisecond, 'sn uyumaya geldik');
42
+ return new Promise((resolve) => setTimeout(() => resolve(true), milisecond));
43
+ };
44
+ class API {
45
+ constructor(apiSettings, lang, useCache) {
46
+ this.getToken = () => this.xhr.getToken();
47
+ this.setToken = (token) => this.xhr.setToken(token);
48
+ this.removeToken = () => this.xhr.removeToken();
49
+ this.setLang = (lang) => {
50
+ this.lang = lang;
51
+ this.xhr.setLang(lang);
52
+ };
53
+ this.configList = () => this.xhr.req(APICONST_1.default.CONFIG.METHOD)(APICONST_1.default.CONFIG.PATH, APICONST_1.default.CONFIG.DATA_KEY);
54
+ /**
55
+ ******************************************************************************
56
+ *
57
+ * Cities
58
+ *
59
+ */
60
+ this.citiesPage = async (page, limit = 1000) => {
61
+ return this.xhr.reqWithPage(APICONST_1.default.CITIES.METHOD)(APICONST_1.default.CITIES.PATH, APICONST_1.default.CITIES.DATA_KEY, {
62
+ limit,
63
+ page,
64
+ });
65
+ };
66
+ this.citiesAll = async () => {
67
+ var _a, _b;
68
+ const hierarchy = (cs) => {
69
+ return cs;
70
+ /* const csClone = helper.deepCopy(cs);
71
+ csClone.forEach((c: Model.City) => {
72
+ if (c.parentLocationId !== null) {
73
+ const parentName: string = cs.find((x) => x.id === c.parentLocationId)?.name || '';
74
+
75
+ if (parentName !== '') {
76
+ c.name += ` - ${parentName}`;
77
+ }
78
+ }
79
+ });
80
+ return csClone; */
81
+ };
82
+ if (!this.forceRequest) {
83
+ const cachedCities = Cached_1.default.cities(this.lang);
84
+ if (cachedCities)
85
+ return Promise.resolve(hierarchy(cachedCities));
86
+ }
87
+ // Dynamic Paging
88
+ let responseCities = [];
89
+ let pageNumber = 0;
90
+ let lastPage = false;
91
+ while (!lastPage) {
92
+ pageNumber += 1;
93
+ // eslint-disable-next-line no-await-in-loop
94
+ const responsePage = await this.citiesPage(pageNumber);
95
+ responseCities = responseCities.concat(responsePage.data);
96
+ // if (responsePage.pagination?.links.next === null) lastPage = true;
97
+ if (responsePage.pagination && ((_a = responsePage.pagination) === null || _a === void 0 ? void 0 : _a.currentPage) === ((_b = responsePage.pagination) === null || _b === void 0 ? void 0 : _b.totalPages))
98
+ lastPage = true;
99
+ }
100
+ return Promise.resolve(hierarchy(responseCities));
101
+ };
102
+ this.city = async (cityId) => {
103
+ if (!this.forceRequest) {
104
+ const cachedCity = Cached_1.default.city(this.lang, cityId);
105
+ if (cachedCity)
106
+ return Promise.resolve(cachedCity);
107
+ }
108
+ return this.xhr.req(APICONST_1.default.CITY.METHOD)(easy_1.default.setParameterId(APICONST_1.default.CITY.PATH, cityId, 'cityId'), APICONST_1.default.CITY.DATA_KEY);
109
+ };
110
+ this.cityInfo = async (cityId) => {
111
+ if (!this.forceRequest) {
112
+ const cachedCityInfo = Cached_1.default.cityInfo(this.lang, cityId);
113
+ if (cachedCityInfo)
114
+ return Promise.resolve(cachedCityInfo);
115
+ }
116
+ return this.xhr.req(APICONST_1.default.CITY_INFO.METHOD)(easy_1.default.setParameterId(APICONST_1.default.CITY_INFO.PATH, cityId, 'cityId'), APICONST_1.default.CITY_INFO.DATA_KEY);
117
+ };
118
+ this.cityEvents = async (cityId) => {
119
+ if (!this.forceRequest) {
120
+ const cachedCityEvents = Cached_1.default.citiesEvents(this.lang, cityId);
121
+ if (cachedCityEvents)
122
+ return Promise.resolve(cachedCityEvents);
123
+ }
124
+ return this.xhr.req(APICONST_1.default.CITY_EVENTS.METHOD)(easy_1.default.setParameterId(APICONST_1.default.CITY_EVENTS.PATH, cityId, 'cityId'), APICONST_1.default.CITY_EVENTS.DATA_KEY);
125
+ };
126
+ this.citiesSearch = async (name) => this.xhr.req(APICONST_1.default.CITIES.METHOD)(APICONST_1.default.CITIES.PATH, APICONST_1.default.CITIES.DATA_KEY, { search: name });
127
+ this.cityFind = async ({ lat, lng }) => this.xhr.req(APICONST_1.default.CITIES.METHOD)(APICONST_1.default.CITIES.PATH, APICONST_1.default.CITIES.DATA_KEY, { coordinate: `${lat},${lng}` });
128
+ /**
129
+ * POI
130
+ */
131
+ // poiCategories = async (limit: number = 100): Promise<Model.PoiCategory[]> => {
132
+ // if (!this.forceRequest) {
133
+ // const poiCategories = Cached.poiCategories(this.lang);
134
+ // if (poiCategories) {
135
+ // return poiCategories;
136
+ // }
137
+ // }
138
+ // return this.xhr.req(API_CONST.POI_CATEGORIES.METHOD)<Model.PoiCategory[]>(API_CONST.POI_CATEGORIES.PATH, API_CONST.POI_CATEGORIES.DATA_KEY, {
139
+ // limit,
140
+ // });
141
+ // };
142
+ this.suggestCity = async (text) => this.xhr.req(APICONST_1.default.SUGGEST_CITY.METHOD)(APICONST_1.default.SUGGEST_CITY.PATH, APICONST_1.default.SUGGEST_CITY.DATA_KEY, {
143
+ text,
144
+ });
145
+ this.poiCategories = async (limit = 100, version = 2) => {
146
+ if (!this.forceRequest) {
147
+ const poiCategories = Cached_1.default.poiCategories(this.lang);
148
+ if (poiCategories) {
149
+ return poiCategories;
150
+ }
151
+ }
152
+ return this.xhr.req(APICONST_1.default.POI_CATEGORIES.METHOD)(APICONST_1.default.POI_CATEGORIES.PATH, APICONST_1.default.POI_CATEGORIES.DATA_KEY, {
153
+ version,
154
+ limit,
155
+ });
156
+ };
157
+ this.poisSearch = async (poisRequest) => this.xhr.reqWithPage(APICONST_1.default.POIS.METHOD)(APICONST_1.default.POIS.PATH, APICONST_1.default.POIS.DATA_KEY, {
158
+ ...poisRequest,
159
+ withOffers: poisRequest.withOffers,
160
+ });
161
+ this.poisNameSearch = async ({ cityId, search, poiCategories, showOffersOnly = true, showBookingsOnly = false, limit = 100, page = 1, }) => {
162
+ if (!this.forceRequest) {
163
+ if (search === '' && poiCategories && poiCategories.length > 0 && page === 1) {
164
+ const cachedPoisAll = Cached_1.default.poisAll(this.lang, cityId || 0, poiCategories, Number(showOffersOnly), Number(showBookingsOnly));
165
+ if (cachedPoisAll)
166
+ return Promise.resolve(cachedPoisAll);
167
+ }
168
+ }
169
+ return this.poisSearch({
170
+ cityId,
171
+ search,
172
+ poiCategories,
173
+ withOffers: Number(showOffersOnly),
174
+ limit: limit > 100 ? limit : limit,
175
+ page,
176
+ }).then((resultPoisDataPayload) => {
177
+ const resultPoisDataPayloadActives = {
178
+ ...resultPoisDataPayload,
179
+ data: resultPoisDataPayload.data.filter((p) => p.status),
180
+ };
181
+ return resultPoisDataPayloadActives;
182
+ });
183
+ };
184
+ this.poisOpenSearch = async ({ cityId, search, poiCategories, showOffersOnly, showBookingsOnly, showBookingsRestaurant, showHotelRecommended, showVisaDestinations, limit = 100, page = 1, }) => {
185
+ if (!this.forceRequest) {
186
+ if (search === '' && poiCategories && poiCategories.length > 0 && page === 1) {
187
+ const cachedPoisAll = Cached_1.default.poisAll(this.lang, cityId || 0, poiCategories, Number(showOffersOnly), Number(showBookingsOnly));
188
+ if (cachedPoisAll)
189
+ return Promise.resolve(cachedPoisAll);
190
+ }
191
+ }
192
+ return this.xhr.reqWithPage(APICONST_1.default.POIS.METHOD)(APICONST_1.default.POIS_OPEN_SEARCH.PATH, APICONST_1.default.POIS_OPEN_SEARCH.DATA_KEY, {
193
+ cityId,
194
+ search,
195
+ poiCategories,
196
+ showOffersOnly: Number(showOffersOnly),
197
+ withBookings: Number(showBookingsOnly),
198
+ withBookingsRestaurant: Number(showBookingsRestaurant),
199
+ hotelRecommended: Number(showHotelRecommended),
200
+ visaDestinations: Number(showVisaDestinations),
201
+ limit,
202
+ page,
203
+ });
204
+ };
205
+ this.poisOpenSearchSort = async ({ cityId, search, poiCategories, showOffersOnly, showBookingsOnly, limit = 100, page = 1, sort, rating, }) => {
206
+ if (!this.forceRequest) {
207
+ if (search === '' && poiCategories && poiCategories.length > 0 && page === 1) {
208
+ const cachedPoisAll = Cached_1.default.poisAll(this.lang, cityId || 0, poiCategories, Number(showOffersOnly), Number(showBookingsOnly));
209
+ if (cachedPoisAll)
210
+ return Promise.resolve(cachedPoisAll);
211
+ }
212
+ }
213
+ return this.xhr.reqWithPage(APICONST_1.default.POIS.METHOD)(APICONST_1.default.POIS_OPEN_SEARCH.PATH, APICONST_1.default.POIS_OPEN_SEARCH.DATA_KEY, {
214
+ cityId,
215
+ search,
216
+ poiCategories,
217
+ showOffersOnly: Number(showOffersOnly),
218
+ withBookings: Number(showBookingsOnly),
219
+ limit,
220
+ page,
221
+ sort,
222
+ rating,
223
+ });
224
+ };
225
+ this.poisSearchAutoComplete = async () => {
226
+ return this.xhr
227
+ .req(APICONST_1.default.POIS_SEARCH_AUTO_COMPLETE.METHOD)(APICONST_1.default.POIS_SEARCH_AUTO_COMPLETE.PATH, APICONST_1.default.POIS_SEARCH_AUTO_COMPLETE.DATA_KEY)
228
+ .then((dataPayloadResult) => dataPayloadResult);
229
+ };
230
+ this.poisSearchAutoCompleteTags = async (cityId, poiCategories) => {
231
+ if (!this.forceRequest) {
232
+ if (poiCategories && poiCategories.length > 0) {
233
+ const cachedTagsAll = Cached_1.default.autoCompleteTagsAll(this.lang, cityId || 0, poiCategories);
234
+ if (cachedTagsAll)
235
+ return Promise.resolve(cachedTagsAll);
236
+ }
237
+ }
238
+ return this.xhr
239
+ .req(APICONST_1.default.POIS_SEARCH_AUTO_COMPLETE_TAGS.METHOD)(APICONST_1.default.POIS_SEARCH_AUTO_COMPLETE_TAGS.PATH, APICONST_1.default.POIS_SEARCH_AUTO_COMPLETE_TAGS.DATA_KEY, { cityId, poiCategories: poiCategories || undefined })
240
+ .then((dataPayloadResult) => dataPayloadResult);
241
+ };
242
+ this.poisCoordinateSearch = async ({ poiCategories, coordinate, distance, bounds, showOffersOnly, limit, }) => this.poisSearch({
243
+ poiCategories,
244
+ coordinate,
245
+ distance,
246
+ bounds,
247
+ withOffers: Number(showOffersOnly),
248
+ limit,
249
+ }).then((dataPayloadResult) => dataPayloadResult.data);
250
+ this.poisMustTrySearch = async ({ cityId, mustTryIds, limit = 100 }) => this.poisSearch({
251
+ cityId,
252
+ mustTryIds,
253
+ limit,
254
+ }).then((resultPoisDataPayload) => resultPoisDataPayload.data.filter((p) => p.status));
255
+ this.pois = async (poiIds, withOffers, cityId, force = false) => {
256
+ const uniquePoiIds = model_1.helper.removeDuplicateValues(poiIds, (p1, p2) => p1 === p2);
257
+ if (!this.forceRequest && !force) {
258
+ const cachedPois = Cached_1.default.pois(this.lang, withOffers, uniquePoiIds);
259
+ if (cachedPois)
260
+ return Promise.resolve(cachedPois);
261
+ }
262
+ return this.poisSearch({ poiIds: uniquePoiIds.join(','), withOffers, cityId }).then((dataPayloadResult) => dataPayloadResult.data);
263
+ };
264
+ this.poi = async (poiId, withOffers = 1) => {
265
+ if (!this.forceRequest) {
266
+ const cachedPoi = Cached_1.default.poi(this.lang, poiId);
267
+ if (cachedPoi)
268
+ return Promise.resolve(cachedPoi);
269
+ }
270
+ return this.xhr.req(APICONST_1.default.POI.METHOD)(easy_1.default.setParameterId(APICONST_1.default.POI.PATH, poiId, 'poiId'), APICONST_1.default.POI.DATA_KEY, {
271
+ withOffers,
272
+ });
273
+ };
274
+ this.customPois = async (name) => {
275
+ return this.xhr.req(APICONST_1.default.CUSTOM_POIS.METHOD)(APICONST_1.default.CUSTOM_POIS.PATH, APICONST_1.default.CUSTOM_POIS.DATA_KEY, {
276
+ search: name,
277
+ });
278
+ };
279
+ /**
280
+ * Top 10
281
+ */
282
+ this.topTen = (cityId, poiCategories) => {
283
+ if (!this.forceRequest) {
284
+ const cachedTopTen = Cached_1.default.topTen(this.lang, cityId);
285
+ if (cachedTopTen)
286
+ return Promise.resolve(cachedTopTen);
287
+ }
288
+ return this.xhr.req(APICONST_1.default.TOP_TEN.METHOD)(APICONST_1.default.TOP_TEN.PATH, APICONST_1.default.TOP_TEN.DATA_KEY, {
289
+ cityId,
290
+ poiCategories,
291
+ });
292
+ };
293
+ /**
294
+ * Registers
295
+ */
296
+ this.register = async (registerRequest) => {
297
+ return this.xhr.req(APICONST_1.default.REGISTER.METHOD)(APICONST_1.default.REGISTER.PATH, APICONST_1.default.REGISTER.DATA_KEY, registerRequest);
298
+ };
299
+ /**
300
+ * Guest
301
+ */
302
+ this.loginGuest = async (uniqueId) => {
303
+ return this.xhr.req(APICONST_1.default.LOGIN_GUEST.METHOD)(APICONST_1.default.LOGIN_GUEST.PATH, APICONST_1.default.LOGIN_GUEST.DATA_KEY, {
304
+ email: `${uniqueId}@tripianguest.com`,
305
+ password: 'tripian123.',
306
+ });
307
+ // .then(() => this.refreshToken());
308
+ };
309
+ /**
310
+ * Logins
311
+ */
312
+ this.login = async (loginRequest) => {
313
+ return this.xhr.req(APICONST_1.default.LOGIN.METHOD)(APICONST_1.default.LOGIN.PATH, APICONST_1.default.LOGIN.DATA_KEY, loginRequest);
314
+ // .then(() => this.refreshToken());
315
+ };
316
+ this.loginEmail = async (email, password, business) => this.login({ email, password, business });
317
+ this.loginCognito = async (code, redirectUrl, device) => this.xhr.req(APICONST_1.default.LOGIN_COGNITO.METHOD)(APICONST_1.default.LOGIN_COGNITO.PATH, APICONST_1.default.LOGIN_COGNITO.DATA_KEY, {
318
+ code,
319
+ redirectUrl,
320
+ device,
321
+ });
322
+ // logout = async (): Promise<Model.DeleteUpdateResponse> => {
323
+ // return this.xhr
324
+ // .req(API_CONST.LOGOUT.METHOD)<Model.DeleteUpdateResponse>(API_CONST.LOGOUT.PATH, API_CONST.LOGOUT.DATA_KEY, {
325
+ // refreshToken: this.getToken()?.refreshToken,
326
+ // })
327
+ // .then((update: Model.DeleteUpdateResponse) => {
328
+ // this.removeToken();
329
+ // dataClear();
330
+ // return update;
331
+ // });
332
+ // };
333
+ this.logout = () => {
334
+ this.removeToken();
335
+ (0, dataClear_1.default)();
336
+ };
337
+ // Light
338
+ this.lightRegisterLogin = async (uniqueId) => {
339
+ return this.xhr.req(APICONST_1.default.LIGHT_REGISTER_LOGIN.METHOD)(APICONST_1.default.LIGHT_REGISTER_LOGIN.PATH, APICONST_1.default.LIGHT_REGISTER_LOGIN.DATA_KEY, { uniqueId });
340
+ };
341
+ this.lightLoginHash = async (tripHash) => {
342
+ return this.xhr.req(APICONST_1.default.LIGHT_HASH_LOGIN.METHOD)(APICONST_1.default.LIGHT_HASH_LOGIN.PATH, APICONST_1.default.LIGHT_HASH_LOGIN.DATA_KEY, {
343
+ tripHash,
344
+ });
345
+ };
346
+ this.refreshToken = async (force = false) => {
347
+ const accessTokenLiveSeconds = 60 * 60; // 1 hour - access token live.
348
+ const accessTokenStartBufferSeconds = 6 * 60; // 6 mins - if ex access token will expire in 6 minutes for init; force refresh now
349
+ const accessTokenEndBufferSeconds = 60; // 1 min - if any access token will expire in 1 minutes; force refresh now. if access token will expire 60 minutes later(means access token is new); force refresh 59 minutes later
350
+ const refreshTokenEndBufferSeconds = 60 * 60 * 24; // 1 day - if refresh token will expire in 24 hours for init; force login
351
+ const currentToken = this.xhr.getToken();
352
+ /* console.log('refreshToken fn called. force: ', force); */
353
+ if (currentToken) {
354
+ /**
355
+ * xhr has token object
356
+ */
357
+ const tokenPayload = easy_1.default.parseToken(currentToken);
358
+ if (tokenPayload) {
359
+ /**
360
+ * FORCE refresh token
361
+ */
362
+ if (force) {
363
+ /* console.log('refreshToken fn: force calling'); */
364
+ return this.xhr
365
+ .req(APICONST_1.default.REFRESH_TOKEN.METHOD)(APICONST_1.default.REFRESH_TOKEN.PATH, APICONST_1.default.REFRESH_TOKEN.DATA_KEY, {
366
+ refreshToken: currentToken.refreshToken,
367
+ })
368
+ .then((token) => {
369
+ const fullToken = { ...token, refreshToken: currentToken.refreshToken };
370
+ this.setToken(fullToken);
371
+ /* console.log('refreshToken fn: force called, token set'); */
372
+ /**
373
+ * set timeout refresh access_token at live - end buffer (end of 59. min)
374
+ */
375
+ /* console.log(
376
+ 'refreshToken fn: force called, settimeout set after (accessTokenLiveSeconds - accessTokenEndBufferSeconds) * 1000',
377
+ (accessTokenLiveSeconds - accessTokenEndBufferSeconds) * 1000,
378
+ ); */
379
+ setTimeout(() => {
380
+ this.refreshToken(true);
381
+ /* console.log('refreshToken fn: force called, OK after (accessTokenLiveSeconds - accessTokenEndBufferSeconds) * 1000'); */
382
+ }, (accessTokenLiveSeconds - accessTokenEndBufferSeconds) * 1000);
383
+ return fullToken;
384
+ });
385
+ }
386
+ /**
387
+ * xhr token object is valid
388
+ */
389
+ const accessTokenExpireSeconds = easy_1.default.accessTokenExpSecond(tokenPayload);
390
+ if (accessTokenExpireSeconds > accessTokenStartBufferSeconds) {
391
+ /* console.log(
392
+ 'refreshToken fn: accessTokenExpireSeconds > accessTokenStartBufferSeconds',
393
+ accessTokenExpireSeconds,
394
+ accessTokenStartBufferSeconds,
395
+ ); */
396
+ /**
397
+ * access_token is still valid
398
+ */
399
+ /**
400
+ * set timeout refresh access_token before end buffer expire - (1 min)
401
+ */
402
+ /* console.log(
403
+ 'refreshToken fn: accessTokenExpireSeconds > accessTokenStartBufferSeconds. settimeout set after (accessTokenExpireSeconds - accessTokenEndBufferSeconds) * 1000:',
404
+ (accessTokenExpireSeconds - accessTokenEndBufferSeconds) * 1000,
405
+ ); */
406
+ setTimeout(() => {
407
+ this.refreshToken(true);
408
+ /* console.log(
409
+ 'refreshToken fn: accessTokenExpireSeconds > accessTokenStartBufferSeconds. OK after (accessTokenExpireSeconds - accessTokenEndBufferSeconds) * 1000:',
410
+ ); */
411
+ }, (accessTokenExpireSeconds - accessTokenEndBufferSeconds) * 1000);
412
+ /**
413
+ * access_token is still valid
414
+ * returned currentToken.
415
+ */
416
+ return new Promise((resolve) => resolve(currentToken));
417
+ }
418
+ // console.log(
419
+ // 'refreshToken fn: accessTokenExpireSeconds <= accessTokenStartBufferSeconds:',
420
+ // accessTokenExpireSeconds,
421
+ // accessTokenStartBufferSeconds,
422
+ // );
423
+ /**
424
+ * access_token expired or expire impending in start buffer
425
+ */
426
+ const { refreshToken } = currentToken;
427
+ const refreshTokenExpireSeconds = easy_1.default.refreshTokenExpSecond(tokenPayload);
428
+ /**
429
+ * If refresh token will not expire refresh end buffer (today)
430
+ */
431
+ if (refreshTokenExpireSeconds > refreshTokenEndBufferSeconds) {
432
+ /* console.log(
433
+ 'refreshToken fn: accessTokenExpireSeconds <= accessTokenStartBufferSeconds and',
434
+ 'refreshTokenExpireSeconds > refreshTokenEndBufferSeconds: ',
435
+ refreshTokenExpireSeconds,
436
+ refreshTokenEndBufferSeconds,
437
+ ); */
438
+ /**
439
+ * refresh_token is still valid
440
+ * we will refresh access_token here.
441
+ */
442
+ /* console.log('refreshToken fn: accessTokenExpireSeconds <= accessTokenStartBufferSeconds. refresh calling'); */
443
+ return this.xhr
444
+ .req(APICONST_1.default.REFRESH_TOKEN.METHOD)(APICONST_1.default.REFRESH_TOKEN.PATH, APICONST_1.default.REFRESH_TOKEN.DATA_KEY, {
445
+ refreshToken,
446
+ })
447
+ .then((token) => {
448
+ const fullToken = { ...token, refreshToken };
449
+ this.setToken(fullToken);
450
+ /* console.log('refreshToken fn: accessTokenExpireSeconds <= accessTokenStartBufferSeconds, token set'); */
451
+ /**
452
+ * set timeout refresh access_token at live - end buffer (end of 59. min)
453
+ */
454
+ /* console.log(
455
+ 'refreshToken fn: accessTokenExpireSeconds <= accessTokenStartBufferSeconds, settimeout set after (accessTokenLiveSeconds - accessTokenEndBufferSeconds) * 1000',
456
+ (accessTokenLiveSeconds - accessTokenEndBufferSeconds) * 1000,
457
+ ); */
458
+ setTimeout(() => {
459
+ this.refreshToken(true);
460
+ /* console.log(
461
+ 'refreshToken fn: accessTokenExpireSeconds <= accessTokenStartBufferSeconds, OK after (accessTokenLiveSeconds - accessTokenEndBufferSeconds) * 1000',
462
+ ); */
463
+ }, (accessTokenLiveSeconds - accessTokenEndBufferSeconds) * 1000);
464
+ return fullToken;
465
+ });
466
+ }
467
+ /* console.log(
468
+ 'refreshToken fn: accessTokenExpireSeconds <= accessTokenStartBufferSeconds and',
469
+ 'refreshTokenExpireSeconds <= refreshTokenEndBufferSeconds: ',
470
+ refreshTokenExpireSeconds,
471
+ refreshTokenEndBufferSeconds,
472
+ 'ERROR',
473
+ ); */
474
+ /**
475
+ * refresh_token expired or expire impending (in 1 day)
476
+ */
477
+ // console.log('Tcore refresh token expired');
478
+ throw new Error('Tcore refresh token expired');
479
+ }
480
+ /**
481
+ * xhr token object is invalid
482
+ */
483
+ // console.log("Tcore doesn't have a valid token object"); // eslint-disable-line quotes
484
+ throw new Error("Tcore doesn't have a valid token object"); // eslint-disable-line quotes
485
+ }
486
+ /**
487
+ * xhr has not token object
488
+ */
489
+ // eslint-disable-next-line quotes
490
+ // console.log("Tcore doesn't have a token object"); // eslint-disable-line quotes
491
+ throw new Error("Tcore doesn't have a token object"); // eslint-disable-line quotes
492
+ };
493
+ /**
494
+ * User
495
+ */
496
+ this.user = async (force = this.forceRequest) => {
497
+ if (!force) {
498
+ const cachedUser = Cached_1.default.user();
499
+ if (cachedUser)
500
+ return Promise.resolve(cachedUser);
501
+ }
502
+ return this.xhr.req(APICONST_1.default.USER.METHOD)(APICONST_1.default.USER.PATH, APICONST_1.default.USER.DATA_KEY);
503
+ };
504
+ this.userUpdate = async (userUpdateRequest) => {
505
+ return this.xhr.req(APICONST_1.default.USER_UPDATE.METHOD)(APICONST_1.default.USER_UPDATE.PATH, APICONST_1.default.USER_UPDATE.DATA_KEY, {
506
+ ...userUpdateRequest,
507
+ });
508
+ };
509
+ this.userDelete = async () => {
510
+ return this.xhr
511
+ .req(APICONST_1.default.USER_DELETE.METHOD)(APICONST_1.default.USER_DELETE.PATH, APICONST_1.default.USER_DELETE.DATA_KEY)
512
+ .then((deleted) => {
513
+ this.removeToken();
514
+ (0, dataClear_1.default)();
515
+ return deleted;
516
+ });
517
+ };
518
+ this.userResetPassword = async (email, resetPasswordUrl) => {
519
+ return this.xhr.req(APICONST_1.default.USER_RESET_PASSWORD.METHOD)(APICONST_1.default.USER_RESET_PASSWORD.PATH, APICONST_1.default.USER_UPDATE.DATA_KEY, { email, resetPasswordUrl });
520
+ };
521
+ this.userUpdatePassword = async (password, hash) => {
522
+ return this.xhr.req(APICONST_1.default.USER_UPDATE_PASSWORD.METHOD)(APICONST_1.default.USER_UPDATE_PASSWORD.PATH, APICONST_1.default.USER_UPDATE_PASSWORD.DATA_KEY, { password, hash });
523
+ };
524
+ /**
525
+ * Notifications
526
+ */
527
+ this.notifications = async () => {
528
+ return this.xhr
529
+ .req(APICONST_1.default.NOTIFICATIONS.METHOD)(APICONST_1.default.NOTIFICATIONS.PATH, APICONST_1.default.NOTIFICATIONS.DATA_KEY)
530
+ .then((dataPayloadResult) => dataPayloadResult);
531
+ };
532
+ this.notificationsUnseen = async () => {
533
+ return this.xhr
534
+ .req(APICONST_1.default.NOTIFICATIONS_UNSEEN.METHOD)(APICONST_1.default.NOTIFICATIONS_UNSEEN.PATH, APICONST_1.default.NOTIFICATIONS_UNSEEN.DATA_KEY)
535
+ .then((dataPayloadResult) => dataPayloadResult);
536
+ };
537
+ this.notificationsUpdateUnseen = async () => {
538
+ return this.xhr.req(APICONST_1.default.NOTIFICATIONS_UPDATE_UNSEEN.METHOD)(APICONST_1.default.NOTIFICATIONS_UPDATE_UNSEEN.PATH, APICONST_1.default.NOTIFICATIONS_UPDATE_UNSEEN.DATA_KEY);
539
+ };
540
+ this.notificationsSettings = async () => {
541
+ return this.xhr
542
+ .req(APICONST_1.default.NOTIFICATIONS_SETTINGS.METHOD)(APICONST_1.default.NOTIFICATIONS_SETTINGS.PATH, APICONST_1.default.NOTIFICATIONS_SETTINGS.DATA_KEY)
543
+ .then((dataPayloadResult) => dataPayloadResult);
544
+ };
545
+ this.notificationsUpdateSettings = async (settingId, checked) => {
546
+ return this.xhr
547
+ .req(APICONST_1.default.NOTIFICATIONS_UPDATE_SETTINGS.METHOD)(APICONST_1.default.NOTIFICATIONS_UPDATE_SETTINGS.PATH, APICONST_1.default.NOTIFICATIONS_UPDATE_SETTINGS.DATA_KEY, { settingId, checked })
548
+ .then((dataPayloadResult) => dataPayloadResult);
549
+ };
550
+ /**
551
+ * Companions
552
+ */
553
+ this.companions = async (force = this.forceRequest) => {
554
+ if (!force) {
555
+ const cachedCompanions = Cached_1.default.companions(this.lang);
556
+ if (cachedCompanions)
557
+ return Promise.resolve(cachedCompanions);
558
+ }
559
+ return this.xhr
560
+ .reqWithPage(APICONST_1.default.COMPANIONS.METHOD)(APICONST_1.default.COMPANIONS.PATH, APICONST_1.default.COMPANIONS.DATA_KEY, {
561
+ limit: 100,
562
+ })
563
+ .then((dataPayloadResult) => dataPayloadResult.data);
564
+ };
565
+ this.companionAdd = async (newCompanion) => this.xhr.req(APICONST_1.default.COMPANION_ADD.METHOD)(APICONST_1.default.COMPANION_ADD.PATH, APICONST_1.default.COMPANION_ADD.DATA_KEY, {
566
+ ...newCompanion,
567
+ });
568
+ // .then(() => this.companions());
569
+ this.companionUpdate = async (companion) => this.xhr.req(APICONST_1.default.COMPANION_UPDATE.METHOD)(easy_1.default.setParameterId(APICONST_1.default.COMPANION_UPDATE.PATH, companion.id, 'companionId'), APICONST_1.default.COMPANION_UPDATE.DATA_KEY, {
570
+ title: companion.title,
571
+ name: companion.name,
572
+ answers: companion.answers,
573
+ age: companion.age,
574
+ });
575
+ // .then(() => this.companions());
576
+ this.companionDelete = async (companionId) => this.xhr
577
+ .req(APICONST_1.default.COMPANION_DELETE.METHOD)(easy_1.default.setParameterId(APICONST_1.default.COMPANION_DELETE.PATH, companionId, 'companionId'), APICONST_1.default.COMPANION_DELETE.DATA_KEY)
578
+ .then((deleted) => deleted.recordId);
579
+ /**
580
+ * Favorites
581
+ */
582
+ this.favorites = async (cityId) => {
583
+ if (!this.forceRequest && cityId) {
584
+ const cachedFavorites = Cached_1.default.favorites(this.lang, cityId);
585
+ if (cachedFavorites)
586
+ return Promise.resolve(cachedFavorites);
587
+ }
588
+ return this.xhr
589
+ .reqWithPage(APICONST_1.default.FAVORITES.METHOD)(APICONST_1.default.FAVORITES.PATH, APICONST_1.default.FAVORITES.DATA_KEY, {
590
+ cityId,
591
+ })
592
+ .then((dataPayloadResult) => dataPayloadResult.data);
593
+ };
594
+ this.favoriteAdd = async (poiId, tripHash) => this.xhr.req(APICONST_1.default.FAVORITE_ADD.METHOD)(APICONST_1.default.FAVORITE_ADD.PATH, APICONST_1.default.FAVORITE_ADD.DATA_KEY, {
595
+ poiId,
596
+ tripHash,
597
+ });
598
+ // .then((addedFavorite: Model.Favorite) => this.favorites(addedFavorite.city_id || 0));
599
+ this.favoriteDelete = async (favoriteId) => this.xhr
600
+ .req(APICONST_1.default.FAVORITE_DELETE.METHOD)(easy_1.default.setParameterId(APICONST_1.default.FAVORITE_DELETE.PATH, favoriteId, 'favoriteId'), APICONST_1.default.FAVORITE_DELETE.DATA_KEY)
601
+ .then((deleted) => deleted.recordId);
602
+ /**
603
+ * Reactions
604
+ */
605
+ this.reactions = async (tripHash, reaction, page = 1) => {
606
+ if (!this.forceRequest) {
607
+ const cachedReactions = Cached_1.default.userReactions(this.lang, tripHash);
608
+ if (cachedReactions)
609
+ return Promise.resolve(cachedReactions);
610
+ }
611
+ return this.xhr
612
+ .reqWithPage(APICONST_1.default.REACTIONS.METHOD)(APICONST_1.default.REACTIONS.PATH, APICONST_1.default.REACTIONS.DATA_KEY, {
613
+ reaction,
614
+ tripHash,
615
+ page,
616
+ limit: 100,
617
+ })
618
+ .then((dataPayloadResult) => dataPayloadResult.data);
619
+ };
620
+ this.reactionAdd = async (reactionRequest) => this.xhr.req(APICONST_1.default.REACTION_ADD.METHOD)(APICONST_1.default.REACTION_ADD.PATH, APICONST_1.default.REACTION_ADD.DATA_KEY, reactionRequest);
621
+ // .then((addedReaction: Model.UserReaction) => this.reactions(addedReaction.trip_hash));
622
+ this.reactionUpdate = async (id, comment) => this.xhr.req(APICONST_1.default.REACTION_UPDATE.METHOD)(easy_1.default.setParameterId(APICONST_1.default.REACTION_UPDATE.PATH, id, 'reactionId'), APICONST_1.default.REACTION_UPDATE.DATA_KEY, { comment });
623
+ // .then((updatedReaction: Model.UserReaction) => this.reactions(updatedReaction.trip_hash));
624
+ this.reactionDelete = async (reactionId) => this.xhr
625
+ .req(APICONST_1.default.REACTION_DELETE.METHOD)(easy_1.default.setParameterId(APICONST_1.default.REACTION_DELETE.PATH, reactionId, 'reactionId'), APICONST_1.default.REACTION_DELETE.DATA_KEY)
626
+ .then((deleted) => deleted.recordId);
627
+ /**
628
+ * Plan
629
+ */
630
+ this.plan = async (planId, generate = true, sleepMs = 2000, retryCount = 30) => {
631
+ return this.xhr
632
+ .req(APICONST_1.default.PLAN.METHOD)(easy_1.default.setParameterId(APICONST_1.default.PLAN.PATH, planId, 'planId'), APICONST_1.default.PLAN.DATA_KEY, {})
633
+ .then(async (plan) => {
634
+ if (generate && plan.generatedStatus === 0) {
635
+ if (retryCount > 0) {
636
+ // console.log('trip info', minPlanIndex, 'plan daha olmamış. Uyuyom ben 200ms');
637
+ const result = await sleep(sleepMs);
638
+ // console.log('trip info', result, 'şimdi uyandık bakalım.');
639
+ if (result)
640
+ return this.plan(planId, generate, sleepMs, retryCount - 1);
641
+ }
642
+ }
643
+ return plan;
644
+ });
645
+ };
646
+ this.planRouteUrl = async (planId, tripHash) => this.xhr.req(APICONST_1.default.PLAN_ROUTE_URL.METHOD)(APICONST_1.default.PLAN_ROUTE_URL.PATH, APICONST_1.default.PLAN_ROUTE_URL.DATA_KEY, {
647
+ planId,
648
+ tripHash,
649
+ });
650
+ this.planUpdate = async (id, planUpdateRequest) => this.xhr.req(APICONST_1.default.PLAN_UPDATE.METHOD)(easy_1.default.setParameterId(APICONST_1.default.PLAN_UPDATE.PATH, id, 'planId'), APICONST_1.default.PLAN_UPDATE.DATA_KEY, { ...planUpdateRequest });
651
+ this.planUpdateOrders = async (planId, stepOrders) => this.planUpdate(planId, { stepOrders }); // .then(() => this.trip(data.trip?.trip_hash || '', undefined, true));
652
+ this.planUpdateTime = async (planId, startTime, endTime) => this.planUpdate(planId, { startTime, endTime }); // .then(() => this.trip(data.trip?.trip_hash || '', undefined, true));
653
+ /**
654
+ * Step
655
+ */
656
+ this.stepAdd = async (planId, poiId, startTime, endTime) => {
657
+ return this.xhr.req(APICONST_1.default.STEP_ADD.METHOD)(APICONST_1.default.STEP_ADD.PATH, APICONST_1.default.STEP_ADD.DATA_KEY, {
658
+ planId,
659
+ poiId,
660
+ startTime,
661
+ endTime,
662
+ });
663
+ // .then(() => this.trip(data.trip?.trip_hash || ''));
664
+ };
665
+ this.customStepAdd = async (planId, customPoi, stepType, startTime, endTime) => {
666
+ return this.xhr.req(APICONST_1.default.STEP_ADD.METHOD)(APICONST_1.default.STEP_ADD.PATH, APICONST_1.default.STEP_ADD.DATA_KEY, {
667
+ planId,
668
+ customPoi,
669
+ stepType,
670
+ startTime,
671
+ endTime,
672
+ });
673
+ // .then(() => this.trip(data.trip?.trip_hash || ''));
674
+ };
675
+ this.stepUpdateTimes = async (stepId, startTime, endTime) => {
676
+ return this.xhr.req(APICONST_1.default.STEP_UPDATE.METHOD)(easy_1.default.setParameterId(APICONST_1.default.STEP_UPDATE.PATH, stepId, 'stepId'), APICONST_1.default.STEP_UPDATE.DATA_KEY, { startTime, endTime });
677
+ };
678
+ this.stepReplace = async (stepId, newPoiId) => {
679
+ return this.xhr.req(APICONST_1.default.STEP_UPDATE.METHOD)(easy_1.default.setParameterId(APICONST_1.default.STEP_UPDATE.PATH, stepId, 'stepId'), APICONST_1.default.STEP_UPDATE.DATA_KEY, { poiId: newPoiId });
680
+ // .then(() => this.trip(data.trip?.trip_hash || ''));
681
+ };
682
+ this.stepDelete = async (stepId) => {
683
+ return this.xhr
684
+ .req(APICONST_1.default.STEP_DELETE.METHOD)(easy_1.default.setParameterId(APICONST_1.default.STEP_DELETE.PATH, stepId, 'stepId'), APICONST_1.default.STEP_DELETE.DATA_KEY)
685
+ .then((deleted) => deleted.recordId);
686
+ // .then(() => this.trip(data.trip?.trip_hash || ''));
687
+ };
688
+ /**
689
+ * Questions
690
+ */
691
+ this.questions = async (cityId, category = model_1.default.QUESTIONS_CATEGORY.TRIP) => {
692
+ const dataKey = `${APICONST_1.default.QUESTIONS.DATA_KEY}-${category}`;
693
+ if (!this.forceRequest) {
694
+ const cachedQuestions = Cached_1.default.questions(this.lang, dataKey);
695
+ if (cachedQuestions)
696
+ return Promise.resolve(cachedQuestions);
697
+ }
698
+ return this.xhr
699
+ .reqWithPage(APICONST_1.default.QUESTIONS.METHOD)(APICONST_1.default.QUESTIONS.PATH, dataKey, {
700
+ cityId,
701
+ category,
702
+ version: 2,
703
+ })
704
+ .then((dataPayloadResult) => dataPayloadResult.data.filter((x) => x.answers.length > 0))
705
+ .then((questionsResponse) => {
706
+ (0, cacheCommon_1.allQuestionsData)(this.lang);
707
+ return questionsResponse;
708
+ });
709
+ };
710
+ this.questionsTrip = async (cityId) => this.questions(cityId, model_1.default.QUESTIONS_CATEGORY.TRIP);
711
+ this.questionsProfile = async (cityId) => this.questions(cityId, model_1.default.QUESTIONS_CATEGORY.PROFILE);
712
+ this.questionsCompanion = async (cityId) => this.questions(cityId, model_1.default.QUESTIONS_CATEGORY.COMPANION);
713
+ this.questionsAll = async (cityId) => {
714
+ const questionsTripPromise = this.questionsTrip(cityId);
715
+ const questionsProfilePromise = this.questionsProfile(cityId);
716
+ const questionsCompanionPromise = this.questionsCompanion(cityId);
717
+ return Promise.all([questionsTripPromise, questionsProfilePromise, questionsCompanionPromise]).then((qAllArray) => {
718
+ const qAll = [];
719
+ return qAll.concat(...qAllArray);
720
+ });
721
+ };
722
+ /**
723
+ * Trips
724
+ */
725
+ this.tripRefs = async (limit = 40) => {
726
+ if (!this.forceRequest) {
727
+ const cachedTripRefs = Cached_1.default.tripRefs();
728
+ if (cachedTripRefs)
729
+ return Promise.resolve(cachedTripRefs);
730
+ }
731
+ return this.xhr
732
+ .reqWithPage(APICONST_1.default.TRIPS.METHOD)(APICONST_1.default.TRIPS.PATH, APICONST_1.default.TRIPS.DATA_KEY, { limit })
733
+ .then((dataPayloadResult) => {
734
+ return dataPayloadResult.data;
735
+ });
736
+ };
737
+ /* tripSavedRefs = async (limit: number = 40, force = false): Promise<Model.TripReference[]> => {
738
+ if (!this.forceRequest && !force) {
739
+ const cachedTripSavedRefs = Cached.tripSavedRefs();
740
+ if (cachedTripSavedRefs) return Promise.resolve(cachedTripSavedRefs);
741
+ }
742
+
743
+ return this.xhr
744
+ .reqWithPage(API_CONST.TRIPS_SAVED.METHOD)<Model.TripReference[]>(API_CONST.TRIPS_SAVED.PATH, API_CONST.TRIPS_SAVED.DATA_KEY, { limit })
745
+ .then((dataPayloadResult) => {
746
+ return dataPayloadResult.data;
747
+ });
748
+ }; */
749
+ this.tripRef = async (hash) => {
750
+ return this.xhr
751
+ .req(APICONST_1.default.TRIP_WITH_HASH.METHOD)(easy_1.default.setParameter(APICONST_1.default.TRIP_WITH_HASH.PATH, { key: 'hash', value: hash }), APICONST_1.default.TRIP_WITH_HASH.DATA_KEY)
752
+ .then((dataPayloadResult) => dataPayloadResult);
753
+ };
754
+ this.trip = async (tripHash, minDayIndex = 0, force = this.forceRequest, sleepMs = 2000, retryCount = 30) => {
755
+ if (!force) {
756
+ const cachedTrip = Cached_1.default.trip(this.lang, tripHash, minDayIndex);
757
+ if (cachedTrip) {
758
+ return Promise.resolve(cachedTrip);
759
+ }
760
+ }
761
+ return this.xhr
762
+ .req(APICONST_1.default.TRIP.METHOD)(easy_1.default.setParameter(APICONST_1.default.TRIP.PATH, { key: 'tripHash', value: tripHash }), APICONST_1.default.TRIP.DATA_KEY)
763
+ .then(async (tripData) => {
764
+ // console.log('trip info', minDayIndex, 'plan için bekliyorduk.');
765
+ const minPlanIndex = tripData.plans.length - 1 < minDayIndex ? tripData.plans.length - 1 : minDayIndex;
766
+ if (tripData.plans[minPlanIndex].generatedStatus === 0 || tripData.plans[minPlanIndex].generatedStatus === -2) {
767
+ // console.log('retryCount', retryCount);
768
+ if (retryCount > 0) {
769
+ // console.log('trip info', minPlanIndex, 'plan daha olmamış. Uyuyom ben 200ms');
770
+ const result = await sleep(sleepMs);
771
+ // console.log('trip info', result, 'şimdi uyandık bakalım.');
772
+ if (result)
773
+ return this.trip(tripData.tripHash, minPlanIndex, force, undefined, retryCount - 1);
774
+ }
775
+ }
776
+ // console.log('tripAdd', minPlanIndex, 'plan olmuş al.');
777
+ return tripData;
778
+ });
779
+ };
780
+ this.tripAdd = async (tripProfile, minDayIndex) => this.xhr
781
+ .req(APICONST_1.default.TRIP_ADD.METHOD)(APICONST_1.default.TRIP_ADD.PATH, APICONST_1.default.TRIP_ADD.DATA_KEY, { ...tripProfile })
782
+ .then((tripData) => (minDayIndex === undefined ? tripData : this.trip(tripData.tripHash, minDayIndex)));
783
+ this.tripClone = async (tripHash) => this.xhr
784
+ .req(APICONST_1.default.TRIP_CLONE.METHOD)(easy_1.default.setParameter(APICONST_1.default.TRIP_CLONE.PATH, { key: 'tripHash', value: tripHash }), APICONST_1.default.TRIP_CLONE.DATA_KEY)
785
+ .then((tripData) => tripData);
786
+ this.tripCloneCombo = async (tripHash) => this.tripClone(tripHash).then(async (tripCloneData) => {
787
+ const tripReferences = await this.tripRefs();
788
+ return {
789
+ trip: tripCloneData,
790
+ tripReferences,
791
+ };
792
+ });
793
+ this.tripUpdate = async (tripHash, tripProfile, minDayIndex = 0) => {
794
+ return this.xhr
795
+ .req(APICONST_1.default.TRIP_UPDATE.METHOD)(easy_1.default.setParameter(APICONST_1.default.TRIP_UPDATE.PATH, { key: 'tripHash', value: tripHash }), APICONST_1.default.TRIP_UPDATE.DATA_KEY, { ...tripProfile })
796
+ .then((tripData) => this.trip(tripData.tripHash, minDayIndex));
797
+ };
798
+ this.tripNameUpdate = async (tripHash, tripProfile) => {
799
+ return this.xhr
800
+ .req(APICONST_1.default.TRIP_UPDATE.METHOD)(easy_1.default.setParameter(APICONST_1.default.TRIP_UPDATE.PATH, { key: 'tripHash', value: tripHash }), APICONST_1.default.TRIP_UPDATE.DATA_KEY, { ...tripProfile })
801
+ .then((tripData) => tripData);
802
+ };
803
+ this.tripDelete = async (tripHash) => {
804
+ return this.xhr
805
+ .req(APICONST_1.default.TRIP_DELETE.METHOD)(easy_1.default.setParameter(APICONST_1.default.TRIP_DELETE.PATH, { key: 'tripHash', value: tripHash }), APICONST_1.default.TRIP_DELETE.DATA_KEY)
806
+ .then((deleted) => deleted.recordId);
807
+ // .then(() => this.trips());
808
+ };
809
+ this.tripDownloadIcs = async (tripHash) => this.xhr
810
+ .req(APICONST_1.default.TRIP_DOWNLOAD_ICS.METHOD)(easy_1.default.setParameter(APICONST_1.default.TRIP_DOWNLOAD_ICS.PATH, { key: 'tripHash', value: tripHash }), APICONST_1.default.TRIP_DOWNLOAD_ICS.DATA_KEY, undefined, {
811
+ headers: { 'Content-Type': 'text/calendar' },
812
+ responseType: 'blob',
813
+ })
814
+ .then((response) => {
815
+ const href = URL.createObjectURL(response.data);
816
+ const link = document.createElement('a');
817
+ link.href = href;
818
+ const headerLine = response.headers['content-disposition'];
819
+ const fileName = headerLine
820
+ .split(';')[1]
821
+ .split('=')[1]
822
+ .replace(/"/g, '');
823
+ link.setAttribute('download', fileName);
824
+ document.body.appendChild(link);
825
+ link.click();
826
+ document.body.removeChild(link);
827
+ URL.revokeObjectURL(href);
828
+ });
829
+ /* tripSavedAdd = async (tripHash: string): Promise<Model.TripReference[]> => {
830
+ return this.xhr
831
+ .req(API_CONST.TRIPS_SAVED_ADD.METHOD)<Model.TripReference[]>(API_CONST.TRIPS_SAVED_ADD.PATH, API_CONST.TRIPS_SAVED.DATA_KEY, {
832
+ tripHash,
833
+ })
834
+ .then((dataPayloadResult) => {
835
+ return dataPayloadResult;
836
+ });
837
+ }; */
838
+ /* tripSavedRemove = async (tripHash: string): Promise<Model.TripReference[]> => {
839
+ return this.xhr
840
+ .req(API_CONST.TRIPS_SAVED_DELETE.METHOD)<Model.TripReference[]>(
841
+ easy.setParameter(API_CONST.TRIPS_SAVED_DELETE.PATH, { key: 'tripHash', value: tripHash }),
842
+ API_CONST.TRIPS_SAVED_DELETE.DATA_KEY,
843
+ )
844
+ .then((dataPayloadResult) => {
845
+ return dataPayloadResult;
846
+ });
847
+ }; */
848
+ this.tripGetShared = async (tripHash, delay = true) => {
849
+ return this.xhr
850
+ .req(APICONST_1.default.TRIP_GET_SHARED.METHOD)(easy_1.default.setParameter(APICONST_1.default.TRIP_GET_SHARED.PATH, { key: 'tripHash', value: tripHash }), APICONST_1.default.TRIP_GET_SHARED.DATA_KEY)
851
+ .then(async (sharedTripData) => {
852
+ const nowToArrivalWeek = (0, moment_1.default)(sharedTripData.tripProfile.arrivalDatetime).diff((0, moment_1.default)(), 'weeks', false);
853
+ if (nowToArrivalWeek < 4 && delay) {
854
+ const displayTrip = model_1.helper.deepCopy(sharedTripData);
855
+ const willAddedWeeks = 4 - nowToArrivalWeek;
856
+ const displayArrivalDate = (0, moment_1.default)(displayTrip.tripProfile.arrivalDatetime).add(willAddedWeeks, 'weeks');
857
+ const displayDepartureDate = (0, moment_1.default)(displayTrip.tripProfile.departureDatetime).add(willAddedWeeks, 'weeks');
858
+ displayTrip.tripProfile.arrivalDatetime = displayArrivalDate.format('YYYY-MM-DDTHH:mm:ss[Z]');
859
+ displayTrip.tripProfile.departureDatetime = displayDepartureDate.format('YYYY-MM-DDTHH:mm:ss[Z]');
860
+ displayTrip.plans.forEach((plan, i) => {
861
+ plan.date = displayArrivalDate
862
+ .clone()
863
+ .add(i, 'days')
864
+ .format('YYYY-MM-DD');
865
+ });
866
+ return displayTrip;
867
+ }
868
+ return sharedTripData;
869
+ });
870
+ };
871
+ this.tripShare = async (tripHash, share) => {
872
+ return this.xhr
873
+ .req(APICONST_1.default.TRIP_SHARE.METHOD)(easy_1.default.setParameter(APICONST_1.default.TRIP_SHARE.PATH, { key: 'tripHash', value: tripHash }), APICONST_1.default.TRIP_SHARE.DATA_KEY, { share })
874
+ .then(async (sharedData) => {
875
+ // console.log('shared trip', sharedTripData, 'shared trip read only al.');
876
+ return sharedData.share;
877
+ });
878
+ };
879
+ /**
880
+ * Timeline
881
+ */
882
+ this.timeline = async (tripHash, minDayIndex = 0, force = this.forceRequest, sleepMs = 2000, retryCount = 30) => {
883
+ return this.xhr
884
+ .req(APICONST_1.default.TIMELINE.METHOD)(easy_1.default.setParameter(APICONST_1.default.TIMELINE.PATH, { key: 'tripHash', value: tripHash }), APICONST_1.default.TIMELINE.DATA_KEY)
885
+ .then(async (tripData) => {
886
+ // console.log('trip info', minDayIndex, 'plan için bekliyorduk.');
887
+ const minPlanIndex = tripData.plans.length - 1 < minDayIndex ? tripData.plans.length - 1 : minDayIndex;
888
+ if (tripData.plans[minPlanIndex].generatedStatus === 0 || tripData.plans[minPlanIndex].generatedStatus === -2) {
889
+ // console.log('retryCount', retryCount);
890
+ if (retryCount > 0) {
891
+ // console.log('trip info', minPlanIndex, 'plan daha olmamış. Uyuyom ben 200ms');
892
+ const result = await sleep(sleepMs);
893
+ // console.log('trip info', result, 'şimdi uyandık bakalım.');
894
+ if (result)
895
+ return this.timeline(tripData.tripHash, minPlanIndex, force, undefined, retryCount - 1);
896
+ }
897
+ }
898
+ // console.log('tripAdd', minPlanIndex, 'plan olmuş al.');
899
+ return tripData;
900
+ });
901
+ };
902
+ this.timelineTripAdd = async (tripProfile, minDayIndex) => this.xhr
903
+ .req(APICONST_1.default.TIMELINE_TRIP_ADD.METHOD)(APICONST_1.default.TIMELINE_TRIP_ADD.PATH, APICONST_1.default.TIMELINE_TRIP_ADD.DATA_KEY, {
904
+ ...tripProfile,
905
+ })
906
+ .then((tripData) => (minDayIndex === undefined ? tripData : this.timeline(tripData.tripHash, minDayIndex)));
907
+ this.timelineTrips = async (limit = 40) => {
908
+ return this.xhr
909
+ .reqWithPage(APICONST_1.default.TIMELINE_TRIPS.METHOD)(APICONST_1.default.TIMELINE_TRIPS.PATH, APICONST_1.default.TIMELINE_TRIPS.DATA_KEY, { limit })
910
+ .then((dataPayloadResult) => {
911
+ return dataPayloadResult.data;
912
+ });
913
+ };
914
+ this.timelineStepAdd = async (planId, poiId, startTime, endTime) => {
915
+ return this.xhr.req(APICONST_1.default.TIMELINE_STEP_ADD.METHOD)(APICONST_1.default.TIMELINE_STEP_ADD.PATH, APICONST_1.default.TIMELINE_STEP_ADD.DATA_KEY, {
916
+ planId,
917
+ poiId,
918
+ startTime,
919
+ endTime,
920
+ });
921
+ // .then(() => this.trip(data.trip?.trip_hash || ''));
922
+ };
923
+ this.timelineCustomStepAdd = async (planId, customPoi, stepType, startTime, endTime) => {
924
+ return this.xhr.req(APICONST_1.default.TIMELINE_STEP_ADD.METHOD)(APICONST_1.default.TIMELINE_STEP_ADD.PATH, APICONST_1.default.TIMELINE_STEP_ADD.DATA_KEY, {
925
+ planId,
926
+ customPoi,
927
+ stepType,
928
+ startTime,
929
+ endTime,
930
+ });
931
+ // .then(() => this.trip(data.trip?.trip_hash || ''));
932
+ };
933
+ this.timelineStepUpdateTimes = async (stepId, startTime, endTime) => {
934
+ return this.xhr.req(APICONST_1.default.TIMELINE_STEP_UPDATE.METHOD)(easy_1.default.setParameterId(APICONST_1.default.TIMELINE_STEP_UPDATE.PATH, stepId, 'stepId'), APICONST_1.default.TIMELINE_STEP_UPDATE.DATA_KEY, { startTime, endTime });
935
+ };
936
+ this.timelineStepReplace = async (stepId, newPoiId) => {
937
+ return this.xhr.req(APICONST_1.default.TIMELINE_STEP_UPDATE.METHOD)(easy_1.default.setParameterId(APICONST_1.default.TIMELINE_STEP_UPDATE.PATH, stepId, 'stepId'), APICONST_1.default.TIMELINE_STEP_UPDATE.DATA_KEY, { poiId: newPoiId });
938
+ // .then(() => this.trip(data.trip?.trip_hash || ''));
939
+ };
940
+ this.timelineStepDelete = async (stepId) => {
941
+ return this.xhr
942
+ .req(APICONST_1.default.TIMELINE_STEP_DELETE.METHOD)(easy_1.default.setParameterId(APICONST_1.default.TIMELINE_STEP_DELETE.PATH, stepId, 'stepId'), APICONST_1.default.TIMELINE_STEP_DELETE.DATA_KEY)
943
+ .then((deleted) => deleted.recordId);
944
+ // .then(() => this.trip(data.trip?.trip_hash || ''));
945
+ };
946
+ this.timelineUpdate = async (tripHash, tripProfile) => {
947
+ return this.xhr
948
+ .req(APICONST_1.default.TIMELINE_UPDATE.METHOD)(easy_1.default.setParameter(APICONST_1.default.TIMELINE_UPDATE.PATH, { key: 'tripHash', value: tripHash }), APICONST_1.default.TIMELINE_UPDATE.DATA_KEY, { ...tripProfile })
949
+ .then((response) => response);
950
+ };
951
+ this.timelineSegmentDelete = async (tripHash, segmentIndex) => {
952
+ const path = easy_1.default.setParameter(APICONST_1.default.TIMELINE_DELETE.PATH, { key: 'tripHash', value: tripHash });
953
+ const fullPath = easy_1.default.setParameter(path, { key: 'segmentIndex', value: String(segmentIndex) });
954
+ return this.xhr
955
+ .req(APICONST_1.default.TIMELINE_DELETE.METHOD)(fullPath, APICONST_1.default.TIMELINE_DELETE.DATA_KEY)
956
+ .then((response) => response);
957
+ };
958
+ this.timelineGetShared = async (tripHash) => {
959
+ return this.xhr
960
+ .req(APICONST_1.default.TIMELINE_GET_SHARED.METHOD)(easy_1.default.setParameter(APICONST_1.default.TIMELINE_GET_SHARED.PATH, { key: 'tripHash', value: tripHash }), APICONST_1.default.TIMELINE_GET_SHARED.DATA_KEY)
961
+ .then(async (sharedTripData) => {
962
+ return sharedTripData;
963
+ });
964
+ };
965
+ /**
966
+ * Reservations
967
+ */
968
+ this.reservations = async (cityId, tripHash, poiId, provider, dateFrom, dateTo, limit = 100) => {
969
+ if (!this.forceRequest) {
970
+ const cachedReservations = Cached_1.default.reservations(this.lang);
971
+ if (cachedReservations)
972
+ return Promise.resolve(cachedReservations);
973
+ }
974
+ return this.xhr
975
+ .reqWithPage(APICONST_1.default.RESERVATIONS.METHOD)(APICONST_1.default.RESERVATIONS.PATH, APICONST_1.default.RESERVATIONS.DATA_KEY, {
976
+ cityId,
977
+ tripHash,
978
+ poiId,
979
+ provider,
980
+ dateFrom,
981
+ dateTo,
982
+ limit,
983
+ })
984
+ .then((dataPayloadResult) => dataPayloadResult.data);
985
+ };
986
+ this.reservationAdd = async (reservationRequest) => this.xhr.req(APICONST_1.default.RESERVATION_ADD.METHOD)(APICONST_1.default.RESERVATION_ADD.PATH, APICONST_1.default.RESERVATION_ADD.DATA_KEY, {
987
+ ...reservationRequest,
988
+ });
989
+ // .then(() => Cached.reservations() || []); // @TODO @PenguenUmut this.reservations() için cityId lazım! Ya da eklenen UserReservation dönülecek.
990
+ this.reservationUpdate = async (reservation) => this.xhr.req(APICONST_1.default.RESERVATION_UPDATE.METHOD)(easy_1.default.setParameterId(APICONST_1.default.RESERVATION_UPDATE.PATH, reservation.id, 'reservationId'), APICONST_1.default.RESERVATION_UPDATE.DATA_KEY, {
991
+ key: reservation.key,
992
+ value: reservation.value,
993
+ provider: reservation.provider,
994
+ tripHash: reservation.tripHash,
995
+ poiId: reservation.poiId,
996
+ });
997
+ // .then(() => Cached.reservations() || []); // @TODO @PenguenUmut this.reservations() için cityId lazım! Ya da eklenen UserReservation dönülecek.
998
+ this.reservationDelete = async (reservationId) => this.xhr
999
+ .req(APICONST_1.default.RESERVATION_DELETE.METHOD)(easy_1.default.setParameterId(APICONST_1.default.RESERVATION_DELETE.PATH, reservationId, 'reservationId'), APICONST_1.default.RESERVATION_DELETE.DATA_KEY)
1000
+ .then((deleted) => deleted.recordId);
1001
+ // .then(() => Cached.reservations() || []); // @TODO @PenguenUmut this.reservations() için cityId lazım! Ya da void olacak.
1002
+ /**
1003
+ * Feedbacks
1004
+ */
1005
+ this.feedbacks = async () => {
1006
+ // if (!this.forceRequest) {
1007
+ // const allFeedbacks = Cached.feedbacks(this.lang);
1008
+ // if (allFeedbacks) return allFeedbacks;
1009
+ // }
1010
+ return this.xhr.req(APICONST_1.default.FEEDBACKS.METHOD)(APICONST_1.default.FEEDBACKS.PATH, APICONST_1.default.FEEDBACKS.DATA_KEY);
1011
+ };
1012
+ this.userFeedbacks = async (forceOnce = false) => {
1013
+ if (!this.forceRequest && !forceOnce) {
1014
+ const allUserFeedbacks = Cached_1.default.userFeedbacks(this.lang);
1015
+ if (allUserFeedbacks)
1016
+ return allUserFeedbacks;
1017
+ }
1018
+ return this.xhr.req(APICONST_1.default.USER_FEEDBACKS.METHOD)(APICONST_1.default.USER_FEEDBACKS.PATH, APICONST_1.default.USER_FEEDBACKS.DATA_KEY);
1019
+ };
1020
+ this.feedbackSend = async (feedbackRequest) => this.xhr
1021
+ .req(APICONST_1.default.SEND_FEEDBACK.METHOD)(APICONST_1.default.SEND_FEEDBACK.PATH, APICONST_1.default.SEND_FEEDBACK.DATA_KEY, { ...feedbackRequest })
1022
+ .then(() => this.userFeedbacks(true));
1023
+ this.feedbackReply = async (feedbackRequest) => this.xhr
1024
+ .req(APICONST_1.default.SEND_FEEDBACK.METHOD)(APICONST_1.default.REPLY_FEEDBACK.PATH, APICONST_1.default.SEND_FEEDBACK.DATA_KEY, { ...feedbackRequest })
1025
+ .then(() => this.userFeedbacks(true));
1026
+ this.feedbackUpdate = async (feedbackId, isRead) => this.xhr
1027
+ .req(APICONST_1.default.UPDATE_FEEDBACK.METHOD)(easy_1.default.setParameterId(APICONST_1.default.UPDATE_FEEDBACK.PATH, feedbackId, 'feedbackId'), APICONST_1.default.UPDATE_FEEDBACK.DATA_KEY, {
1028
+ isRead,
1029
+ })
1030
+ .then(() => this.userFeedbacks(true));
1031
+ /**
1032
+ * Offers
1033
+ */
1034
+ this.productTypes = async () => this.xhr
1035
+ .req(APICONST_1.default.OFFER_PRODUCT_TYPES.METHOD)(APICONST_1.default.OFFER_PRODUCT_TYPES.PATH, APICONST_1.default.OFFER_PRODUCT_TYPES.DATA_KEY)
1036
+ .then((productTypes) => productTypes);
1037
+ this.offerSearch = async (dateFrom, dateTo, boundary, showOffersOnly) => this.xhr
1038
+ .reqWithPage(APICONST_1.default.OFFERS.METHOD)(APICONST_1.default.OFFERS.PATH, APICONST_1.default.OFFERS.DATA_KEY, {
1039
+ dateFrom,
1040
+ dateTo,
1041
+ boundary,
1042
+ page: 1,
1043
+ limit: 50,
1044
+ })
1045
+ .then((offers) => {
1046
+ if (offers.data.length === 0)
1047
+ return [];
1048
+ const poiIds = offers.data.map((o) => o.tripianPoiId);
1049
+ return this.pois(poiIds, Number(showOffersOnly), undefined, true);
1050
+ });
1051
+ this.offersOptIn = async (dateFrom, dateTo) => this.xhr.req(APICONST_1.default.OFFERS_OPT_IN.METHOD)(APICONST_1.default.OFFERS_OPT_IN.PATH, APICONST_1.default.OFFERS_OPT_IN.DATA_KEY, {
1052
+ dateFrom,
1053
+ dateTo,
1054
+ });
1055
+ /* .then((offers) => {
1056
+ if (offers.length === 0) return [];
1057
+ const poiIds = offers.map((o) => o.tripianPoiId);
1058
+ return this.pois(poiIds);
1059
+ }); */
1060
+ this.myCampaignOffers = async (campaignId) => this.xhr.req(APICONST_1.default.OFFERS_OPT_IN.METHOD)(APICONST_1.default.OFFERS_OPT_IN.PATH, APICONST_1.default.OFFERS_OPT_IN.DATA_KEY, {
1061
+ campaignId,
1062
+ });
1063
+ this.offerSearchCampaign = async (campaignId, showOffersOnly) => this.xhr
1064
+ .reqWithPage(APICONST_1.default.OFFERS.METHOD)(APICONST_1.default.OFFERS.PATH, APICONST_1.default.OFFERS.DATA_KEY, {
1065
+ campaignId,
1066
+ })
1067
+ .then((offers) => {
1068
+ if (offers.data.length === 0)
1069
+ return [];
1070
+ const poiIds = offers.data.map((o) => o.tripianPoiId);
1071
+ return this.pois(poiIds, Number(showOffersOnly), undefined, true);
1072
+ });
1073
+ this.offerSearchNew = async (dateFrom, dateTo, boundary) => this.xhr.reqWithPage(APICONST_1.default.OFFERS.METHOD)(APICONST_1.default.OFFERS.PATH, APICONST_1.default.OFFERS.DATA_KEY, {
1074
+ dateFrom,
1075
+ dateTo,
1076
+ boundary,
1077
+ page: 1,
1078
+ limit: 50,
1079
+ });
1080
+ this.offer = async (offerId) => this.xhr
1081
+ .req(APICONST_1.default.OFFER.METHOD)(easy_1.default.setParameterId(APICONST_1.default.OFFER.PATH, offerId, 'offerId'), APICONST_1.default.OFFER.DATA_KEY, {})
1082
+ .then((offer) => offer);
1083
+ this.offerUpdateOptIn = async (offerId, optInDate) => this.xhr
1084
+ .req(APICONST_1.default.OFFER_UPDATE.METHOD)(easy_1.default.setParameterId(APICONST_1.default.OFFER_UPDATE.PATH, offerId, 'offerId'), APICONST_1.default.OFFER_UPDATE.DATA_KEY, { optInDate })
1085
+ .then((dataResult) => dataResult);
1086
+ this.offerDelete = async (offerId) => this.xhr
1087
+ .req(APICONST_1.default.OFFER_DELETE.METHOD)(easy_1.default.setParameterId(APICONST_1.default.OFFER_DELETE.PATH, offerId, 'offerId'), APICONST_1.default.OFFER_DELETE.DATA_KEY)
1088
+ .then((dataResult) => dataResult);
1089
+ this.offerRedeemStatusUpdate = async (offerId, status) => this.xhr
1090
+ .req(APICONST_1.default.OFFER_REDEEM_STATUS_UPDATE.METHOD)(easy_1.default.setParameterId(APICONST_1.default.OFFER_REDEEM_STATUS_UPDATE.PATH, offerId, 'offerId'), APICONST_1.default.OFFER_REDEEM_STATUS_UPDATE.DATA_KEY, { status })
1091
+ .then((dataResult) => dataResult.status);
1092
+ this.offerRedeemStatus = async (offerId) => this.xhr
1093
+ .req(APICONST_1.default.OFFER_REDEEM_STATUS.METHOD)(easy_1.default.setParameterId(APICONST_1.default.OFFER_REDEEM_STATUS.PATH, offerId, 'offerId'), APICONST_1.default.OFFER_REDEEM_STATUS.DATA_KEY)
1094
+ .then((dataResult) => dataResult.status);
1095
+ /**
1096
+ * Small Business Tools
1097
+ */
1098
+ this.businessSearch = async (q, cityId, bounds) => this.xhr.req(APICONST_1.default.BUSINESS_SEARCH.METHOD)(APICONST_1.default.BUSINESS_SEARCH.PATH, APICONST_1.default.BUSINESS_SEARCH.DATA_KEY, {
1099
+ q,
1100
+ cityId,
1101
+ bounds,
1102
+ });
1103
+ this.businessAssign = async (tripianPoiId) => {
1104
+ return this.xhr.req(APICONST_1.default.BUSINESS_USER_ASSIGN.METHOD)(APICONST_1.default.BUSINESS_USER_ASSIGN.PATH, APICONST_1.default.BUSINESS_USER_ASSIGN.DATA_KEY, {
1105
+ tripianPoiId,
1106
+ });
1107
+ };
1108
+ this.startVerify = async (to_, channel) => this.xhr.req(APICONST_1.default.BUSINESS_VERIFY_START.METHOD)(APICONST_1.default.BUSINESS_VERIFY_START.PATH, APICONST_1.default.BUSINESS_VERIFY_START.DATA_KEY, { to_, channel });
1109
+ this.checkVerify = async (to_, channel, code) => this.xhr.req(APICONST_1.default.BUSINESS_VERIFY_CHECK.METHOD)(APICONST_1.default.BUSINESS_VERIFY_CHECK.PATH, APICONST_1.default.BUSINESS_VERIFY_CHECK.DATA_KEY, { to_, channel, code });
1110
+ this.business = async () => this.xhr.req(APICONST_1.default.BUSINESS.METHOD)(APICONST_1.default.BUSINESS.PATH, APICONST_1.default.BUSINESS.DATA_KEY);
1111
+ /* businessUpdate = async (offerId: number, image: Model.Image): Promise<Model.Business> =>
1112
+ this.xhr
1113
+ .req(API_CONST.BUSINESS_OFFER_UPDATE.METHOD)<Model.Business>(
1114
+ easy.setParameterId(API_CONST.BUSINESS_OFFER_UPDATE.PATH, offerId, 'offerId'),
1115
+ API_CONST.BUSINESS_OFFER_UPDATE.DATA_KEY,
1116
+ { offerId, image },
1117
+ )
1118
+ */
1119
+ this.businessOffers = async (statuses, page = 1, limit) => this.xhr.reqWithPage(APICONST_1.default.BUSINESS_OFFERS.METHOD)(APICONST_1.default.BUSINESS_OFFERS.PATH, APICONST_1.default.BUSINESS_OFFERS.DATA_KEY, {
1120
+ status: `${statuses.join(',')}`,
1121
+ page,
1122
+ limit,
1123
+ });
1124
+ this.businessOfferAdd = async (offerAddRequest) => this.xhr.req(APICONST_1.default.BUSINESS_OFFER_ADD.METHOD)(APICONST_1.default.BUSINESS_OFFER_ADD.PATH, APICONST_1.default.BUSINESS_OFFER_ADD.DATA_KEY, {
1125
+ ...offerAddRequest,
1126
+ });
1127
+ this.businessVoucherOfferAdd = async (voucherOfferAddRequest) => this.xhr.req(APICONST_1.default.BUSINESS_OFFER_ADD.METHOD)(APICONST_1.default.BUSINESS_OFFER_ADD.PATH, APICONST_1.default.BUSINESS_OFFER_ADD.DATA_KEY, {
1128
+ ...voucherOfferAddRequest,
1129
+ });
1130
+ this.businessOffer = async (offerId) => this.xhr.req(APICONST_1.default.BUSINESS_OFFER.METHOD)(easy_1.default.setParameterId(APICONST_1.default.BUSINESS_OFFER.PATH, offerId, 'offerId'), APICONST_1.default.BUSINESS_OFFER.DATA_KEY);
1131
+ this.businessOfferStatusUpdate = async (offerId, status) => this.xhr.req(APICONST_1.default.BUSINESS_OFFER_UPDATE.METHOD)(easy_1.default.setParameterId(APICONST_1.default.BUSINESS_OFFER_UPDATE.PATH, offerId, 'offerId'), APICONST_1.default.BUSINESS_OFFER_UPDATE.DATA_KEY, { offerId, status });
1132
+ this.businessOfferImageUpdate = async (offerId, imageUrl) => this.xhr.req(APICONST_1.default.BUSINESS_OFFER_UPDATE.METHOD)(easy_1.default.setParameterId(APICONST_1.default.BUSINESS_OFFER_UPDATE.PATH, offerId, 'offerId'), APICONST_1.default.BUSINESS_OFFER_UPDATE.DATA_KEY, { offerId, imageUrl });
1133
+ this.businessOfferDelete = async (offerId) => this.xhr
1134
+ .req(APICONST_1.default.BUSINESS_OFFER_DELETE.METHOD)(easy_1.default.setParameterId(APICONST_1.default.BUSINESS_OFFER_DELETE.PATH, offerId, 'offerId'), APICONST_1.default.BUSINESS_OFFER_DELETE.DATA_KEY)
1135
+ .then((deleted) => deleted.recordId);
1136
+ this.businessOfferCustomers = async (offerId) => this.xhr.req(APICONST_1.default.BUSINESS_OFFER_CUSTOMERS.METHOD)(easy_1.default.setParameterId(APICONST_1.default.BUSINESS_OFFER_CUSTOMERS.PATH, offerId, 'offerId'), APICONST_1.default.BUSINESS_OFFER_CUSTOMERS.DATA_KEY);
1137
+ this.businessOfferFileUpload = async (file) => this.xhr.req(APICONST_1.default.BUSINESS_OFFER_FILE_UPLOAD.METHOD)(APICONST_1.default.BUSINESS_OFFER_FILE_UPLOAD.PATH, APICONST_1.default.BUSINESS_OFFER_FILE_UPLOAD.DATA_KEY, { file }, { 'Content-Type': 'multipart/form-data' });
1138
+ this.businessOfferRedeemStatusUpdate = async (offerId, userId, status) => this.xhr
1139
+ .req(APICONST_1.default.BUSINESS_OFFER_REDEEM_STATUS_UPDATE.METHOD)(easy_1.default.setParameters(APICONST_1.default.BUSINESS_OFFER_REDEEM_STATUS_UPDATE.PATH, [
1140
+ { key: 'offerId', value: offerId.toString() },
1141
+ { key: 'userId', value: userId.toString() },
1142
+ ]), APICONST_1.default.BUSINESS_OFFER_REDEEM_STATUS_UPDATE.DATA_KEY, { status })
1143
+ .then((dataResult) => dataResult.status);
1144
+ this.businessOfferRedeemStatus = async (offerId, userId) => this.xhr
1145
+ .req(APICONST_1.default.BUSINESS_OFFER_REDEEM_STATUS.METHOD)(easy_1.default.setParameters(APICONST_1.default.BUSINESS_OFFER_REDEEM_STATUS.PATH, [
1146
+ { key: 'offerId', value: offerId.toString() },
1147
+ { key: 'userId', value: userId.toString() },
1148
+ ]), APICONST_1.default.BUSINESS_OFFER_REDEEM_STATUS.DATA_KEY)
1149
+ .then((dataResult) => dataResult.status);
1150
+ /**
1151
+ * Business Pre Registers
1152
+ */
1153
+ this.businessPreRegister = async (preRegister) => {
1154
+ return this.xhr.req(APICONST_1.default.BUSINESS_PRE_REGISTER.METHOD)(APICONST_1.default.BUSINESS_PRE_REGISTER.PATH, APICONST_1.default.BUSINESS_PRE_REGISTER.DATA_KEY, preRegister);
1155
+ };
1156
+ /**
1157
+ * Campaign
1158
+ */
1159
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
1160
+ this.businessCampaigns = async (page, limit = 1000) => {
1161
+ // await sleep();
1162
+ // eslint-disable-next-line @typescript-eslint/no-use-before-define
1163
+ // return mockCampaigns;
1164
+ return this.xhr.reqWithPage(APICONST_1.default.BUSINESS_CAMPAIGNS.METHOD)(APICONST_1.default.BUSINESS_CAMPAIGNS.PATH, APICONST_1.default.BUSINESS_CAMPAIGNS.DATA_KEY, {
1165
+ limit,
1166
+ page,
1167
+ });
1168
+ };
1169
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
1170
+ this.businessCampaign = async (campaignId) => {
1171
+ // await sleep();
1172
+ // eslint-disable-next-line @typescript-eslint/no-use-before-define
1173
+ // return mockCampaigns.data.find((x) => x.id);
1174
+ return this.xhr.req(APICONST_1.default.BUSINESS_CAMPAIGN.METHOD)(easy_1.default.setParameterId(APICONST_1.default.BUSINESS_CAMPAIGN.PATH, campaignId, 'campaignId'), APICONST_1.default.BUSINESS_CAMPAIGN.DATA_KEY);
1175
+ };
1176
+ this.businessCampaignUpdate = async (campaignId, campaignRequest) => this.xhr
1177
+ .req(APICONST_1.default.BUSINESS_CAMPAIGN_UPDATE.METHOD)(easy_1.default.setParameterId(APICONST_1.default.BUSINESS_CAMPAIGN_UPDATE.PATH, campaignId, 'campaignId'), APICONST_1.default.BUSINESS_CAMPAIGN_UPDATE.DATA_KEY, campaignRequest)
1178
+ .then((dataResult) => dataResult.updated);
1179
+ this.businessCampaignAdd = async (campaignRequest) => this.xhr
1180
+ .req(APICONST_1.default.BUSINESS_CAMPAIGN_ADD.METHOD)(APICONST_1.default.BUSINESS_CAMPAIGN_ADD.PATH, APICONST_1.default.BUSINESS_CAMPAIGN_ADD.DATA_KEY, campaignRequest)
1181
+ .then((dataResult) => dataResult.campaignId);
1182
+ /**
1183
+ * Coupon
1184
+ */
1185
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
1186
+ this.businessCouponApplications = async (page, status, limit = 150) => {
1187
+ // await sleep();
1188
+ // eslint-disable-next-line @typescript-eslint/no-use-before-define
1189
+ // return mockCouponApplications;
1190
+ return this.xhr.reqWithPage(APICONST_1.default.BUSINESS_COUPON_APPLICATIONS.METHOD)(APICONST_1.default.BUSINESS_COUPON_APPLICATIONS.PATH, APICONST_1.default.BUSINESS_COUPON_APPLICATIONS.DATA_KEY, {
1191
+ page,
1192
+ status,
1193
+ limit,
1194
+ });
1195
+ };
1196
+ this.businessCouponApplication = async (applicationId) => {
1197
+ // await sleep();
1198
+ // eslint-disable-next-line @typescript-eslint/no-use-before-define
1199
+ // return mockCouponApplications.data.find((x) => x.id === applicationId);
1200
+ return this.xhr.req(APICONST_1.default.BUSINESS_COUPON_APPLICATION.METHOD)(easy_1.default.setParameterId(APICONST_1.default.BUSINESS_COUPON_APPLICATION.PATH, applicationId, 'applicationId'), APICONST_1.default.BUSINESS_COUPON_APPLICATION.DATA_KEY);
1201
+ };
1202
+ this.businessCouponApplicationAdd = async (couponApplicationRequest) => this.xhr
1203
+ .req(APICONST_1.default.BUSINESS_COUPON_APPLICATION_ADD.METHOD)(APICONST_1.default.BUSINESS_COUPON_APPLICATION_ADD.PATH, APICONST_1.default.BUSINESS_COUPON_APPLICATION_ADD.DATA_KEY, { formDatas: couponApplicationRequest })
1204
+ .then((dataResult) => dataResult.applicationId);
1205
+ this.businessCouponApplicationUserUpdate = async (applicationId, travelerId, status, campaignId = 0, bookingDate, notes, amount) => this.xhr
1206
+ .req(APICONST_1.default.BUSINESS_COUPON_APPLICATION_USER_UPDATE.METHOD)(easy_1.default.setParameters(APICONST_1.default.BUSINESS_COUPON_APPLICATION_USER_UPDATE.PATH, [
1207
+ { key: 'applicationId', value: applicationId.toString() },
1208
+ { key: 'travelerId', value: travelerId.toString() },
1209
+ ]), APICONST_1.default.BUSINESS_COUPON_APPLICATION_USER_UPDATE.DATA_KEY, { campaignId, status: status ? 1 : -1, bookingDate, notes, amount })
1210
+ .then((response) => response.updated);
1211
+ this.businessCouponApplicationUserApprove = async (applicationId, travelerId, campaignId, bookingDate, amount) => this.businessCouponApplicationUserUpdate(applicationId, travelerId, true, campaignId, bookingDate, undefined, amount).then((updated) => {
1212
+ if (updated)
1213
+ return this.businessCouponApplication(applicationId);
1214
+ return undefined;
1215
+ });
1216
+ this.businessCouponApplicationUserReject = async (applicationId, travelerId, campaignId, bookingDate, notes) => this.businessCouponApplicationUserUpdate(applicationId, travelerId, false, campaignId, bookingDate, notes).then((updated) => {
1217
+ if (updated)
1218
+ return this.businessCouponApplication(applicationId);
1219
+ return undefined;
1220
+ });
1221
+ this.businessCouponApplicationFileUpload = async (file) => this.xhr.req(APICONST_1.default.BUSINESS_COUPON_FILE_UPLOAD.METHOD)(APICONST_1.default.BUSINESS_COUPON_FILE_UPLOAD.PATH, APICONST_1.default.BUSINESS_COUPON_FILE_UPLOAD.DATA_KEY, { file }, { 'Content-Type': 'multipart/form-data' });
1222
+ /**
1223
+ * Wallet
1224
+ */
1225
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
1226
+ this.coupons = async (page, limit = 1000) => {
1227
+ // await sleep();
1228
+ // eslint-disable-next-line @typescript-eslint/no-use-before-define
1229
+ // return mockCoupons;
1230
+ return this.xhr.reqWithPage(APICONST_1.default.COUPONS.METHOD)(APICONST_1.default.COUPONS.PATH, APICONST_1.default.COUPONS.DATA_KEY, {
1231
+ limit,
1232
+ page,
1233
+ });
1234
+ };
1235
+ this.payment = async (voucherOfferId) => {
1236
+ // await sleep();
1237
+ // eslint-disable-next-line @typescript-eslint/no-use-before-define
1238
+ // const newBalance = mockCoupons.data[0].balance - voucherOfferId;
1239
+ // eslint-disable-next-line @typescript-eslint/no-use-before-define
1240
+ // return { ...mockCoupons.data[0], balance: newBalance } as Model.Coupon;
1241
+ return this.xhr.req(APICONST_1.default.PAYMENT.METHOD)(easy_1.default.setParameters(APICONST_1.default.PAYMENT.PATH, [{ key: 'offerId', value: voucherOfferId.toString() }]), APICONST_1.default.PAYMENT.DATA_KEY);
1242
+ };
1243
+ /**
1244
+ * Wallet
1245
+ */
1246
+ this.campaignReport = async (campaignId, query) => {
1247
+ return this.xhr.reqWithPage(APICONST_1.default.CAMPAIGN_REPORT.METHOD)(easy_1.default.setParameters(APICONST_1.default.CAMPAIGN_REPORT.PATH, [{ key: 'campaignId', value: campaignId.toString() }]), APICONST_1.default.CAMPAIGN_REPORT.DATA_KEY, { ...query });
1248
+ };
1249
+ this.campaignReportPay = async (campaignId, id) => {
1250
+ return this.xhr
1251
+ .req(APICONST_1.default.CAMPAIGN_REPORT_PAY.METHOD)(easy_1.default.setParameters(APICONST_1.default.CAMPAIGN_REPORT_PAY.PATH, [
1252
+ { key: 'campaignId', value: campaignId.toString() },
1253
+ { key: 'id', value: id.toString() },
1254
+ ]), APICONST_1.default.CAMPAIGN_REPORT.DATA_KEY)
1255
+ .then((res) => res.updated);
1256
+ };
1257
+ this.campaignCustomerReport = async (campaignId, query) => {
1258
+ return this.xhr
1259
+ .reqWithPage(APICONST_1.default.CAMPAIGN_CUSTOMER_REPORT.METHOD)(easy_1.default.setParameters(APICONST_1.default.CAMPAIGN_CUSTOMER_REPORT.PATH, [{ key: 'campaignId', value: campaignId.toString() }]), APICONST_1.default.CAMPAIGN_CUSTOMER_REPORT.DATA_KEY, {
1260
+ ...query,
1261
+ })
1262
+ .then((datas) => {
1263
+ datas.data.forEach((d) => {
1264
+ d.lengthOfStay = (0, moment_1.default)(d.customerDepartureDate).diff((0, moment_1.default)(d.customerArrivalDate), 'days', false);
1265
+ });
1266
+ return datas;
1267
+ });
1268
+ };
1269
+ this.businessReport = async (query) => {
1270
+ return this.xhr.reqWithPage(APICONST_1.default.BUSINESS_REPORT.METHOD)(APICONST_1.default.BUSINESS_REPORT.PATH, APICONST_1.default.BUSINESS_REPORT.DATA_KEY, {
1271
+ ...query,
1272
+ });
1273
+ };
1274
+ this.businessPreRegisterReport = async (query) => {
1275
+ return this.xhr.reqWithPage(APICONST_1.default.BUSINESS_PRE_REGISTER_REPORT.METHOD)(APICONST_1.default.BUSINESS_PRE_REGISTER_REPORT.PATH, APICONST_1.default.BUSINESS_PRE_REGISTER_REPORT.DATA_KEY, {
1276
+ ...query,
1277
+ });
1278
+ };
1279
+ this.businessOfferReport = async (page = 1, limit = 1000) => {
1280
+ return this.xhr.reqWithPage(APICONST_1.default.BUSINESS_OFFER_REPORT.METHOD)(APICONST_1.default.BUSINESS_OFFER_REPORT.PATH, APICONST_1.default.BUSINESS_OFFER_REPORT.DATA_KEY, {
1281
+ page,
1282
+ limit,
1283
+ });
1284
+ };
1285
+ this.businessExport = async (reportType, campaignId) => this.xhr.req(APICONST_1.default.BUSINESS_EXPORT.METHOD)(APICONST_1.default.BUSINESS_EXPORT.PATH, APICONST_1.default.BUSINESS_EXPORT.DATA_KEY, {
1286
+ reportType,
1287
+ campaignId,
1288
+ });
1289
+ /**
1290
+ * Translations
1291
+ */
1292
+ this.translationList = async () => this.xhr.req(APICONST_1.default.TRANSLATIONS.METHOD)(APICONST_1.default.TRANSLATIONS.PATH, APICONST_1.default.TRANSLATIONS.DATA_KEY);
1293
+ /**
1294
+ * Logs
1295
+ */
1296
+ this.log = async (message, dataPayload = {}, type = 'ERROR') => {
1297
+ var _a;
1298
+ const { baseURL, xApiKey, email } = this.xhr.info();
1299
+ return this.xhr.req(APICONST_1.default.LOGS.METHOD)(APICONST_1.default.LOGS.PATH, APICONST_1.default.LOGS.DATA_KEY, {
1300
+ message: {
1301
+ /* static datas */
1302
+ platform: 'web',
1303
+ type,
1304
+ g_api_customer_id: 0,
1305
+ user_id: 0,
1306
+ uri_params: {},
1307
+ query_params: { apibaseURL: baseURL },
1308
+ /* app static datas */
1309
+ api_key: xApiKey,
1310
+ endpoint: (_a = window === null || window === void 0 ? void 0 : window.location.href) !== null && _a !== void 0 ? _a : '',
1311
+ /* log messages */
1312
+ response_msg: message,
1313
+ request_params: {
1314
+ email,
1315
+ ...dataPayload,
1316
+ },
1317
+ },
1318
+ });
1319
+ };
1320
+ this.visaIframeToken = async () => this.xhr
1321
+ .req(APICONST_1.default.VISA_IFRAME_TOKEN.METHOD)(APICONST_1.default.VISA_IFRAME_TOKEN.PATH, APICONST_1.default.OFFER.DATA_KEY)
1322
+ .then((visaToken) => visaToken);
1323
+ this.visaValidatorCheck = async (context) => {
1324
+ return this.xhr.req(APICONST_1.default.VISA_VALIDATOR_CHECK.METHOD)(APICONST_1.default.VISA_VALIDATOR_CHECK.PATH, APICONST_1.default.VISA_VALIDATOR_CHECK.DATA_KEY, {
1325
+ context,
1326
+ });
1327
+ };
1328
+ /**
1329
+ * Tour API
1330
+ */
1331
+ this.tourSearch = async (request) => this.xhr.req(APICONST_1.default.TOUR_SEARCH.METHOD)(APICONST_1.default.TOUR_SEARCH.PATH, APICONST_1.default.TOUR_SEARCH.DATA_KEY, request);
1332
+ /**
1333
+ * COMBO
1334
+ */
1335
+ this.combo = {
1336
+ /**
1337
+ *
1338
+ * Business Combo
1339
+ *
1340
+ */
1341
+ businessPayloadData: async () => this.user().then((userData) => {
1342
+ if (userData.businessId && userData.businessId > 0) {
1343
+ return this.business().then((businessData) => {
1344
+ return {
1345
+ user: userData,
1346
+ business: businessData,
1347
+ };
1348
+ });
1349
+ }
1350
+ return {
1351
+ user: userData,
1352
+ };
1353
+ }),
1354
+ campaignReportPayCombo: async (campaignId, id, query) =>
1355
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
1356
+ this.campaignReportPay(campaignId, id).then((updatedPlan) => this.campaignReport(campaignId, query)),
1357
+ payloadDataEx: async () => this.user().then((userData) => this.business().then((businessData) => ({
1358
+ user: userData,
1359
+ business: businessData,
1360
+ }))),
1361
+ /**
1362
+ *
1363
+ *
1364
+ * Trip Combo
1365
+ */
1366
+ tripDelete: async (tripHash, tripRefsLimit) =>
1367
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
1368
+ this.tripDelete(tripHash).then(() => this.tripRefs(tripRefsLimit)),
1369
+ /**
1370
+ *
1371
+ *
1372
+ * Step Combo
1373
+ */
1374
+ stepAdd: async (planId, poiId, tripHash, startTime, endTime) =>
1375
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
1376
+ this.stepAdd(planId, poiId, startTime, endTime).then(() => this.trip(tripHash, undefined)),
1377
+ customStepAdd: async (planId, customPoi, tripHash, stepType, startTime, endTime) =>
1378
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
1379
+ this.customStepAdd(planId, customPoi, stepType, startTime, endTime).then(() => this.trip(tripHash, undefined, true)),
1380
+ stepUpdateTimes: async (stepId, startTime, endTime, tripHash) =>
1381
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
1382
+ this.stepUpdateTimes(stepId, startTime, endTime).then((updatedStep) => this.trip(tripHash, undefined)),
1383
+ stepReplace: async (stepId, newPoiId, tripHash) =>
1384
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
1385
+ this.stepReplace(stepId, newPoiId).then((replacedStep) => this.trip(tripHash, undefined)),
1386
+ stepDelete: async (stepId, tripHash) =>
1387
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
1388
+ this.stepDelete(stepId).then(() => this.trip(tripHash, undefined, true)),
1389
+ /**
1390
+ *
1391
+ *
1392
+ * Plan Combo
1393
+ */
1394
+ planUpdateOrders: async (planId, orders, tripHash) =>
1395
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
1396
+ this.planUpdateOrders(planId, orders).then((updatedPlan) => this.trip(tripHash, undefined, true)),
1397
+ planUpdateTime: async (planId, minDayIndex, startTime, endTime, tripHash) =>
1398
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
1399
+ this.planUpdateTime(planId, startTime, endTime).then((updatedPlan) => this.trip(tripHash, minDayIndex, true)),
1400
+ /**
1401
+ *
1402
+ *
1403
+ * Favorite Combo
1404
+ */
1405
+ favoriteAdd: async (tripHash, poiId, cityId) =>
1406
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
1407
+ this.favoriteAdd(poiId, tripHash).then((addedFavorite) => this.favorites(cityId)),
1408
+ favoriteDelete: async (favoriteId, cityId) =>
1409
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
1410
+ this.favoriteDelete(favoriteId).then(() => this.favorites(cityId)),
1411
+ /**
1412
+ *
1413
+ *
1414
+ * Companion Combo
1415
+ */
1416
+ companionAdd: async (newCompanion, companionsForce) => this.companionAdd(newCompanion).then(() => this.companions(companionsForce)),
1417
+ companionUpdate: async (companion, companionsForce) => this.companionUpdate(companion).then(() => this.companions(companionsForce)),
1418
+ companionDelete: async (companionId, companionsForce) => this.companionDelete(companionId).then(() => this.companions(companionsForce)),
1419
+ /**
1420
+ *
1421
+ *
1422
+ * Reservation Combo
1423
+ */
1424
+ reservationAdd: async (newReservation, cityId) => this.reservationAdd(newReservation).then(() => this.reservations(cityId)),
1425
+ reservationUpdate: async (reservation, cityId) => this.reservationUpdate(reservation).then(() => this.reservations(cityId)),
1426
+ reservationDelete: async (reservationId, cityId) => this.reservationDelete(reservationId).then(() => this.reservations(cityId)),
1427
+ /**
1428
+ *
1429
+ *
1430
+ * Reaction Combo
1431
+ */
1432
+ reactionAdd: async (newReaction, tripHash) => this.reactionAdd(newReaction).then(() => this.reactions(tripHash)),
1433
+ // reactionUpdate: async (reaction: Model.UserReaction, tripHash: string, startDate: string, endDate: string): Promise<Model.UserReaction[]> =>
1434
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
1435
+ // this.reactionUpdate(reaction).then((updatedReaction: Model.UserReaction) => this.reactions(startDate, endDate, undefined, tripHash)),
1436
+ };
1437
+ this.xhr = new xhrFetch_1.default(apiSettings, lang);
1438
+ this.forceRequest = !useCache;
1439
+ this.lang = lang;
1440
+ }
1441
+ }
1442
+ /* const mockCoupons: Model.DataPayload<Model.Coupon[]> = {
1443
+ data: [
1444
+ {
1445
+ id: 1,
1446
+ currency: Model.OFFER_CURRENCY.BBD,
1447
+ balance: 90,
1448
+ campaign: {
1449
+ id: 1,
1450
+ title: 'BTMI Summer Campaign',
1451
+ category: 'Voucher',
1452
+ // currency: 'BBD$',
1453
+ amount: 100,
1454
+ maximumRecipients: 100,
1455
+ limited: false,
1456
+ description: '',
1457
+ maximumOfferAmount: 50,
1458
+ // assignedVouchers: 3,
1459
+ // assignedVoucherValue: 150,
1460
+ startDate: '2023-07-07T00:00:00+03:00',
1461
+ endDate: '2023-07-17T00:00:00+03:00',
1462
+ // status: Model.CAMPAIGN_STATUS.ACTIVE,
1463
+ },
1464
+ },
1465
+ ],
1466
+ pagination: { count: 3, currentPage: 1, perPage: 20, total: 3, totalPages: 1 },
1467
+ }; */
1468
+ /* const mockCampaigns: Model.DataPayload<Model.Campaign[]> = {
1469
+ data: [
1470
+ {
1471
+ id: 1,
1472
+ title: 'BTMI Summer Campaign',
1473
+ category: 'Voucher',
1474
+ currency: 'BBD$',
1475
+ amount: 100,
1476
+ maximumRecipients: 100,
1477
+ limited: false,
1478
+ description: '',
1479
+ maximumOfferAmount: 50,
1480
+ assignedVouchers: 3,
1481
+ assignedVoucherValue: 150,
1482
+ startDate: '2023-07-07T00:00:00+03:00',
1483
+ endDate: '2023-07-17T00:00:00+03:00',
1484
+ status: Model.CAMPAIGN_STATUS.ACTIVE,
1485
+ },
1486
+ {
1487
+ id: 2,
1488
+ title: 'Crazy Summer Campaign',
1489
+ currency: 'BBD$',
1490
+ category: 'Voucher',
1491
+ amount: 200,
1492
+ maximumRecipients: 50,
1493
+ limited: false,
1494
+ description: '',
1495
+ maximumOfferAmount: 50,
1496
+ assignedVouchers: 6,
1497
+ assignedVoucherValue: 300,
1498
+ startDate: '2023-07-07T00:00:00+03:00',
1499
+ endDate: '2023-07-17T00:00:00+03:00',
1500
+ status: Model.CAMPAIGN_STATUS.EXPIRED,
1501
+ },
1502
+ {
1503
+ id: 3,
1504
+ title: 'Penguin Campaign',
1505
+ category: 'Voucher',
1506
+ currency: 'BBD$',
1507
+ amount: 150,
1508
+ maximumRecipients: 60,
1509
+ limited: false,
1510
+ description: '',
1511
+ maximumOfferAmount: 20,
1512
+ assignedVouchers: 3,
1513
+ assignedVoucherValue: 60,
1514
+ startDate: '2023-07-07T00:00:00+03:00',
1515
+ endDate: '2023-07-17T00:00:00+03:00',
1516
+ status: Model.CAMPAIGN_STATUS.ACTIVE,
1517
+ },
1518
+ ],
1519
+ pagination: { count: 3, currentPage: 1, perPage: 20, total: 3, totalPages: 1 },
1520
+ };
1521
+ const mockCouponApplications: Model.DataPayload<Model.CouponApplication[]> = {
1522
+ data: [
1523
+ {
1524
+ id: 12,
1525
+ travelInformation: {
1526
+ adults: 3,
1527
+ nameOfProperty: 'Crystal Waters',
1528
+ proofOfHolidayBookingUrl: 'https://poi-pics.s3.eu-west-1.amazonaws.com/Smbt/customer_7/bcoupons/2023-07/upload_bFk3Sn97Hu.jpg',
1529
+ },
1530
+ marketingQuestions: { howDidYouHear: 'Advertisement', howDidYouBookYourTrip: 'Online' },
1531
+ personalInformations: [
1532
+ {
1533
+ id: 0,
1534
+ campaign_id: 0,
1535
+ title: 'Mr',
1536
+ firstName: 'Mustafa',
1537
+ lastName: 'Sandal',
1538
+ arrivalDate: '2023-07-18T00:00:00+03:00',
1539
+ departureDate: '2023-07-24T00:00:00+03:00',
1540
+ departureDestination: 'Turkey',
1541
+ airline: 'Condor (DE)',
1542
+ flightNumber: '23435645',
1543
+ passportNumber: '578786756634',
1544
+ dateOfBirth: '1974-01-24T00:00:00+02:00',
1545
+ emailAddress: 'mustafa@sandal.com',
1546
+ phoneNumber: '+905555555555',
1547
+ status: 0,
1548
+ },
1549
+ {
1550
+ id: 0,
1551
+ campaign_id: 0,
1552
+ title: 'Mr',
1553
+ firstName: 'Kemal',
1554
+ lastName: 'Ku0131lu0131u00e7darou011flu',
1555
+ arrivalDate: '2023-07-18T00:00:00+03:00',
1556
+ departureDate: '2023-07-24T00:00:00+03:00',
1557
+ departureDestination: 'Turkmenistan',
1558
+ airline: 'Virgin Atlantic (VS)',
1559
+ flightNumber: '345457524',
1560
+ passportNumber: '34574685679',
1561
+ dateOfBirth: '1953-01-28T00:00:00+02:00',
1562
+ emailAddress: 'kk@kk.com',
1563
+ phoneNumber: '+905555555555',
1564
+ status: 0,
1565
+ },
1566
+ {
1567
+ id: 0,
1568
+ campaign_id: 0,
1569
+ title: 'Mr',
1570
+ firstName: 'Ulau015f',
1571
+ lastName: 'Ayu00e7iu00e7ek',
1572
+ arrivalDate: '2023-07-11T00:00:00+03:00',
1573
+ departureDate: '2023-07-25T00:00:00+03:00',
1574
+ departureDestination: 'Algeria',
1575
+ airline: 'Caribbean Airlines (BW)',
1576
+ flightNumber: '5464564',
1577
+ passportNumber: '4864568',
1578
+ dateOfBirth: '2001-09-18T00:00:00+03:00',
1579
+ emailAddress: 'aycicek.u@gmail.com',
1580
+ phoneNumber: '+905454839658',
1581
+ status: 0,
1582
+ },
1583
+ ],
1584
+ },
1585
+ {
1586
+ id: 11,
1587
+ travelInformation: {
1588
+ adults: 2,
1589
+ nameOfProperty: 'Cobblers Cove Hotel',
1590
+ proofOfHolidayBookingUrl: 'https://poi-pics.s3.eu-west-1.amazonaws.com/Smbt/customer_7/bcoupons/2023-07/upload_jhDsWIchEf.png',
1591
+ },
1592
+ marketingQuestions: { howDidYouHear: 'Advertisement', howDidYouBookYourTrip: 'Online' },
1593
+ personalInformations: [
1594
+ {
1595
+ id: 0,
1596
+ campaign_id: 0,
1597
+ title: 'Mr',
1598
+ firstName: 'Michael',
1599
+ lastName: 'Jackson',
1600
+ arrivalDate: '2023-07-13T00:00:00+03:00',
1601
+ departureDate: '2023-07-26T00:00:00+03:00',
1602
+ departureDestination: 'Algeria',
1603
+ airline: 'Condor (DE)',
1604
+ flightNumber: 'sdf324234',
1605
+ passportNumber: '234234234234534',
1606
+ dateOfBirth: '1957-01-16T00:00:00+02:00',
1607
+ emailAddress: 'michael@jackson.com',
1608
+ phoneNumber: '+905555555555',
1609
+ status: 0,
1610
+ },
1611
+ {
1612
+ id: 0,
1613
+ campaign_id: 0,
1614
+ title: 'Mr',
1615
+ firstName: 'Samuel L.',
1616
+ lastName: 'Jackson',
1617
+ arrivalDate: '2023-07-20T00:00:00+03:00',
1618
+ departureDate: '2023-07-31T00:00:00+03:00',
1619
+ departureDestination: 'Afghanistan',
1620
+ airline: 'JetBlue (B6)',
1621
+ flightNumber: '234235345',
1622
+ passportNumber: '234235354564',
1623
+ dateOfBirth: '1965-01-27T00:00:00+02:00',
1624
+ emailAddress: 'samule@jackson.com',
1625
+ phoneNumber: '+905555555555',
1626
+ status: 0,
1627
+ },
1628
+ ],
1629
+ },
1630
+ {
1631
+ id: 10,
1632
+ travelInformation: {
1633
+ adults: 1,
1634
+ nameOfProperty: 'Annjenn Apartments',
1635
+ proofOfHolidayBookingUrl: 'https://poi-pics.s3.eu-west-1.amazonaws.com/Smbt/customer_7/bcoupons/2023-07/upload_eONvZiMmmS.png',
1636
+ },
1637
+ marketingQuestions: { howDidYouHear: 'Advertisement', howDidYouBookYourTrip: 'Online' },
1638
+ personalInformations: [
1639
+ {
1640
+ id: 0,
1641
+ campaign_id: 0,
1642
+ title: 'Mrs',
1643
+ firstName: 'Scarlett',
1644
+ lastName: 'Johansson',
1645
+ arrivalDate: '2023-07-11T00:00:00+03:00',
1646
+ departureDate: '2023-07-20T00:00:00+03:00',
1647
+ departureDestination: 'United States of America (the)',
1648
+ airline: 'American Airlines (AA)',
1649
+ flightNumber: '324erew4',
1650
+ passportNumber: '23423454',
1651
+ dateOfBirth: '1992-01-08T00:00:00+02:00',
1652
+ emailAddress: 'scarlett@johansson.com',
1653
+ phoneNumber: '+905555555555',
1654
+ status: 0,
1655
+ },
1656
+ ],
1657
+ },
1658
+ ],
1659
+ pagination: { count: 4, currentPage: 1, perPage: 20, total: 4, totalPages: 1 },
1660
+ };
1661
+ */
1662
+ exports.default = API;
1663
+ //# sourceMappingURL=API.js.map