mts-booking-library 1.0.0 → 1.0.2
Sign up to get free protection for your applications and to get access to all the features.
- package/lib/config.d.ts +10 -1
- package/lib/config.js +33 -9
- package/lib/index.d.ts +97 -24
- package/lib/index.js +144 -17
- package/lib/types/Cart.d.ts +1 -1
- package/lib/types/Journey.d.ts +8 -0
- package/lib/types/Journey.js +2 -0
- package/lib/types/JourneySearch.d.ts +9 -0
- package/lib/types/JourneySearch.js +2 -0
- package/lib/types/Journeys/BusMatrix.d.ts +0 -0
- package/lib/types/Journeys/BusMatrix.js +1 -0
- package/lib/types/Journeys/Journey.d.ts +8 -0
- package/lib/types/Journeys/Journey.js +2 -0
- package/lib/types/Journeys/JourneySearch.d.ts +10 -0
- package/lib/types/Journeys/JourneySearch.js +12 -0
- package/lib/types/Journeys/Stop.d.ts +7 -0
- package/lib/types/Journeys/Stop.js +2 -0
- package/lib/types/Journeys/Trip.d.ts +9 -0
- package/lib/types/Journeys/Trip.js +2 -0
- package/lib/types/Subscriptions/Subscrptions.d.ts +12 -0
- package/lib/types/Subscriptions/Subscrptions.js +2 -0
- package/lib/types/Subscriptions/ValidityTypes.d.ts +6 -0
- package/lib/types/Subscriptions/ValidityTypes.js +10 -0
- package/lib/types/Tour.d.ts +1 -0
- package/lib/types/Tours/Tour.d.ts +18 -0
- package/lib/types/Tours/Tour.js +2 -0
- package/lib/types/Trip.d.ts +6 -12
- package/lib/utils/apiCall.js +13 -8
- package/package.json +7 -7
package/lib/config.d.ts
CHANGED
@@ -1,4 +1,13 @@
|
|
1
|
-
export declare
|
1
|
+
export declare enum MTSEnvs {
|
2
|
+
DEV = "DEV",
|
3
|
+
STAGING = "STAGING",
|
4
|
+
PROD = "PROD"
|
5
|
+
}
|
6
|
+
export type MTSConfig = {
|
7
|
+
ENV: MTSEnvs;
|
2
8
|
API_ENDPOINT: string;
|
3
9
|
OCP_SUBSCRIPTION_KEY: string;
|
10
|
+
ACCESS_TOKEN: string | undefined;
|
4
11
|
};
|
12
|
+
export declare const setConfig: (env: MTSEnvs, sub_key: string, access_token?: string) => MTSConfig;
|
13
|
+
export declare const getConfig: () => MTSConfig;
|
package/lib/config.js
CHANGED
@@ -1,17 +1,41 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.getConfig = void 0;
|
4
|
-
var
|
3
|
+
exports.getConfig = exports.setConfig = exports.MTSEnvs = void 0;
|
4
|
+
var MTSEnvs;
|
5
|
+
(function (MTSEnvs) {
|
6
|
+
MTSEnvs["DEV"] = "DEV";
|
7
|
+
MTSEnvs["STAGING"] = "STAGING";
|
8
|
+
MTSEnvs["PROD"] = "PROD";
|
9
|
+
})(MTSEnvs || (exports.MTSEnvs = MTSEnvs = {}));
|
5
10
|
var config = {
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
11
|
+
ENV: MTSEnvs.PROD,
|
12
|
+
API_ENDPOINT: "https://myticketsolutionapim.azure-api.net/api",
|
13
|
+
OCP_SUBSCRIPTION_KEY: "",
|
14
|
+
ACCESS_TOKEN: undefined
|
15
|
+
};
|
16
|
+
var setConfig = function (env, sub_key, access_token) {
|
17
|
+
// First, set the environment
|
18
|
+
config.ENV = env;
|
19
|
+
switch (config.ENV) {
|
20
|
+
case MTSEnvs.DEV:
|
21
|
+
config.API_ENDPOINT = "https://myticketsolutionapim.azure-api.net/api/dev";
|
22
|
+
break;
|
23
|
+
case MTSEnvs.STAGING:
|
24
|
+
config.API_ENDPOINT = "https://myticketsolutionapim.azure-api.net/api/stag";
|
25
|
+
break;
|
26
|
+
case MTSEnvs.PROD:
|
27
|
+
config.API_ENDPOINT = "https://myticketsolutionapim.azure-api.net/api";
|
28
|
+
break;
|
29
|
+
default:
|
30
|
+
throw new Error("Invalid environment");
|
12
31
|
}
|
32
|
+
// Set OCT and access token
|
33
|
+
config.OCP_SUBSCRIPTION_KEY = sub_key;
|
34
|
+
config.ACCESS_TOKEN = access_token;
|
35
|
+
return config;
|
13
36
|
};
|
37
|
+
exports.setConfig = setConfig;
|
14
38
|
var getConfig = function () {
|
15
|
-
return config
|
39
|
+
return config;
|
16
40
|
};
|
17
41
|
exports.getConfig = getConfig;
|
package/lib/index.d.ts
CHANGED
@@ -1,37 +1,81 @@
|
|
1
|
-
import {
|
1
|
+
import { MTSEnvs } from "./config";
|
2
|
+
import { Cart, TourCart, JourneyCart } from "./types/Cart";
|
2
3
|
import { Details } from "./types/Details";
|
3
|
-
import { Tour } from "./types/Tour";
|
4
|
-
import {
|
5
|
-
import {
|
6
|
-
|
7
|
-
|
8
|
-
onCartExpiration: () => void;
|
9
|
-
};
|
10
|
-
type StopNames = string[];
|
4
|
+
import { Tour, TourTrip } from "./types/Tours/Tour";
|
5
|
+
import { JourneySearch } from "./types/Journeys/JourneySearch";
|
6
|
+
import { Subscription } from "./types/Subscriptions/Subscrptions";
|
7
|
+
import { ValidityTypes } from "./types/Subscriptions/ValidityTypes";
|
8
|
+
import { Journey } from "./types/Journeys/Journey";
|
11
9
|
export declare class Booking {
|
12
10
|
readonly sellerId?: number | undefined;
|
13
11
|
private readonly config;
|
14
12
|
private cart?;
|
15
13
|
private cartStatus;
|
16
14
|
private onCartExpiration;
|
17
|
-
|
15
|
+
/**
|
16
|
+
* This is the constructor of the Booking class.
|
17
|
+
* @param {string} env The environment in which the app is running. Can be "dev", "stag" or "prod"
|
18
|
+
* @param {string} sub_key The subscription key for using the APIs
|
19
|
+
* @param {() => void} onCartExpiration A callback function that will be called when the cart expires
|
20
|
+
* @param {string} [access_token=undefined] The access token for calling MTS APIs
|
21
|
+
* @param {number} [sellerId=undefined] The id of the seller. If not set, it will return the results for all sellers
|
22
|
+
*/
|
23
|
+
constructor(env: MTSEnvs, sub_key: string, onCartExpiration: () => void, access_token?: string, sellerId?: number);
|
24
|
+
/**
|
25
|
+
* This method allows to renew the access token for calling MTS APIs
|
26
|
+
* @param {string} access_token The new access token
|
27
|
+
*/
|
28
|
+
renewAccessToken(access_token: string): void;
|
18
29
|
getCartStatus(): Booking.CartStatus;
|
19
30
|
getCart(): Cart | undefined;
|
20
31
|
private fetchAndSetCart;
|
21
32
|
private createCartTimer;
|
22
33
|
getCartExpirationTimeInMs(): Promise<number>;
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
34
|
+
/**
|
35
|
+
* This method returns the list of cities in which the seller offers tours.
|
36
|
+
* If the sellerId is not set or it is 0, it will return the list of cities for all sellers.
|
37
|
+
* @returns {string[]} The list of possible cities
|
38
|
+
*/
|
39
|
+
getTourCities(): Promise<string[]>;
|
40
|
+
/**
|
41
|
+
* This method returns the tours sold by this seller in the given city.
|
42
|
+
* If the sellerId is not set or it is 0, it will return the tours in the given city for all sellers.
|
43
|
+
* @param {string} [cityName=undefined] The name of the selected city (as returned by {@link getTourCities})
|
44
|
+
* @param {Booking.Currencies} currency The currency in which the prices should be returned
|
45
|
+
* @returns {Tour[]} The returned tours
|
46
|
+
*/
|
47
|
+
getTours(currency: Booking.Currencies, cityName?: string): Promise<Tour[]>;
|
48
|
+
/**
|
49
|
+
* This method returns the tours available for the given date. This method can be used if the seller wants the user to book a specific date
|
50
|
+
* and/or a specific hour for the tour.
|
51
|
+
* You should call this method only if {@link Tour.isDateOptional} or {@link Tour.isDateRequired} is true for the selected tour.
|
52
|
+
* @param {number} tourId The id of the selected tour (can be retrieved in the object {@link Tour} returned by {@link getTours})
|
53
|
+
* @param {Date} date The date on which to get the tours
|
54
|
+
* @returns {TourTrip[]} The returned information about the tour (tripId and hour)
|
55
|
+
*/
|
56
|
+
getToursTrips(tourId: number, date: Date): Promise<TourTrip[]>;
|
29
57
|
createTourCart(tourCart: TourCart): Promise<Cart>;
|
30
58
|
fetchCart(cartId: number): Promise<Cart>;
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
59
|
+
/**
|
60
|
+
* This method returns the possible departures for all journeys (MLP) sold by this seller.
|
61
|
+
* @returns {string[]} The list of possible departures
|
62
|
+
*/
|
63
|
+
getJourneysDepartures(): Promise<string[]>;
|
64
|
+
/**
|
65
|
+
* This method returns the possible destination for the journeys sold by this seller that start at the selected departure.
|
66
|
+
* @param {string} departureStopName The departure stop name (as returned by {@link getJourneysDepartures})
|
67
|
+
* @returns {string[]} The list of possible destinations
|
68
|
+
*/
|
69
|
+
getJourneysDestinations(departureStopName: string): Promise<string[]>;
|
70
|
+
/**
|
71
|
+
* This method returns the journeys that match the given parameters.
|
72
|
+
* Note that it will always return the journeys for the one-way trip.
|
73
|
+
* If you want to get the journeys for the round trip, you have to call this method twice (make sure to swap departureStopName and destinationStopName)
|
74
|
+
* @param {JourneySearch} params an object of type {@link JourneySearch} containing the parameters of the search
|
75
|
+
* @returns {Journey[]} The returned journeys that match the given parameters
|
76
|
+
*/
|
77
|
+
getJourneys(params: JourneySearch): Promise<Journey[]>;
|
78
|
+
createJourneyCart(tripCart: JourneyCart): Promise<Cart>;
|
35
79
|
getBusMatrix(params: {
|
36
80
|
tripId: number;
|
37
81
|
departureStopId: number;
|
@@ -42,10 +86,40 @@ export declare class Booking {
|
|
42
86
|
departureStopId: number;
|
43
87
|
destinationStopId: number;
|
44
88
|
}): Promise<any>;
|
45
|
-
|
89
|
+
movePassengers(params: {
|
46
90
|
tripId: number;
|
47
91
|
seatsIds: number[];
|
48
92
|
}): Promise<any>;
|
93
|
+
/**
|
94
|
+
* This method returns the possible departures for all subscriptions sold by this seller.
|
95
|
+
* @returns {string[]} The list of possible departures
|
96
|
+
*/
|
97
|
+
getSubscriptionsDepartures(): Promise<string[]>;
|
98
|
+
/**
|
99
|
+
* This method returns the possible destination for the subscriptions sold by this seller that start at the selected departure.
|
100
|
+
* @param {string} departureStopName The departure stop name (as returned by {@link getSubscriptionsDepartures})
|
101
|
+
* @returns {string[]} The list of possible destinations
|
102
|
+
*/
|
103
|
+
getSubscrptionsDestinations(departureStopName: string): Promise<string[]>;
|
104
|
+
/**
|
105
|
+
* This method returns the possible validity types for the subscriptions sold by this seller between the selected departure and destination.
|
106
|
+
* The validity type is the duration of the subscription (1 week, 1 month, etc.). See {@link ValidityTypes} for more details.
|
107
|
+
* @param {string} departureStopName The departure stop name (as returned by {@link getSubscriptionsDepartures})
|
108
|
+
* @param {string} destinationStopName The destination stop name (as returned by {@link getSubscriptionsDstinations})
|
109
|
+
* @returns {ValidityTypes[]} The list of possible validity types
|
110
|
+
*/
|
111
|
+
getSubscrptionsValidityTypes(departureStopName: string, destinationStopName: string): Promise<ValidityTypes[]>;
|
112
|
+
/**
|
113
|
+
* This method returns the subscriptions that match the given parameters.
|
114
|
+
* Note that it will always return the subscription for the one-way trip.
|
115
|
+
* If you want to get the subscription for the round trip, you have to call this method twice (make sure to swap departureStopName and destinationStopName)
|
116
|
+
* @param {string} departureStopName The departure stop name (as returned by {@link getSubscriptionsDepartures})
|
117
|
+
* @param {string} destinationStopName The destination stop name (as returned by {@link getSubscriptionsDstinations})
|
118
|
+
* @param {string} validityType The validity type (as returned by {@link getSubscriptionsValidityTypes})
|
119
|
+
* @returns {Array<Subscription>} The subscriptions that match the given parameters
|
120
|
+
*/
|
121
|
+
getSubscrptions(departureStopName: string, destinationStopName: string, validityType: string): Promise<Subscription[]>;
|
122
|
+
getSubscrptionAvailabilities(departureStopName: string, destinationStopName: string, validityType: string): Promise<Subscription[]>;
|
49
123
|
getPassengersDetails(): Promise<any>;
|
50
124
|
updatePassengersDetails(passengersDetails: Details): Promise<any>;
|
51
125
|
}
|
@@ -58,10 +132,9 @@ export declare namespace Booking {
|
|
58
132
|
enum CartStatus {
|
59
133
|
EMPTY = "EMPTY",
|
60
134
|
CREATION = "CREATION",
|
61
|
-
SEAT = "SEATS",
|
62
|
-
EXTRAS = "EXTRAS",
|
63
135
|
PASSENGERS = "PASSENGERS",
|
136
|
+
SEATS = "SEATS",
|
137
|
+
EXTRAS = "EXTRAS",
|
64
138
|
PAYMENT = "PAYMENT"
|
65
139
|
}
|
66
140
|
}
|
67
|
-
export {};
|
package/lib/index.js
CHANGED
@@ -55,16 +55,31 @@ if (typeof localStorage === "undefined" || localStorage === null) {
|
|
55
55
|
global.localStorage = new LocalStorage("./scratch");
|
56
56
|
}
|
57
57
|
var Booking = /** @class */ (function () {
|
58
|
-
|
58
|
+
/**
|
59
|
+
* This is the constructor of the Booking class.
|
60
|
+
* @param {string} env The environment in which the app is running. Can be "dev", "stag" or "prod"
|
61
|
+
* @param {string} sub_key The subscription key for using the APIs
|
62
|
+
* @param {() => void} onCartExpiration A callback function that will be called when the cart expires
|
63
|
+
* @param {string} [access_token=undefined] The access token for calling MTS APIs
|
64
|
+
* @param {number} [sellerId=undefined] The id of the seller. If not set, it will return the results for all sellers
|
65
|
+
*/
|
66
|
+
function Booking(env, sub_key, onCartExpiration, access_token, sellerId) {
|
59
67
|
this.cartStatus = Booking.CartStatus.EMPTY;
|
60
|
-
this.sellerId =
|
61
|
-
this.config = (0, config_1.
|
62
|
-
this.onCartExpiration =
|
68
|
+
this.sellerId = sellerId || undefined;
|
69
|
+
this.config = (0, config_1.setConfig)(env, sub_key, access_token);
|
70
|
+
this.onCartExpiration = onCartExpiration;
|
63
71
|
var cartId = localStorage.getItem("cartId");
|
64
72
|
if (cartId) {
|
65
73
|
this.fetchAndSetCart(parseInt(cartId));
|
66
74
|
}
|
67
75
|
}
|
76
|
+
/**
|
77
|
+
* This method allows to renew the access token for calling MTS APIs
|
78
|
+
* @param {string} access_token The new access token
|
79
|
+
*/
|
80
|
+
Booking.prototype.renewAccessToken = function (access_token) {
|
81
|
+
(0, config_1.setConfig)(this.config.ENV, this.config.OCP_SUBSCRIPTION_KEY, access_token);
|
82
|
+
};
|
68
83
|
Booking.prototype.getCartStatus = function () {
|
69
84
|
return this.cartStatus;
|
70
85
|
};
|
@@ -115,7 +130,12 @@ var Booking = /** @class */ (function () {
|
|
115
130
|
});
|
116
131
|
});
|
117
132
|
};
|
118
|
-
// Tours config
|
133
|
+
// #region Tours config
|
134
|
+
/**
|
135
|
+
* This method returns the list of cities in which the seller offers tours.
|
136
|
+
* If the sellerId is not set or it is 0, it will return the list of cities for all sellers.
|
137
|
+
* @returns {string[]} The list of possible cities
|
138
|
+
*/
|
119
139
|
Booking.prototype.getTourCities = function () {
|
120
140
|
return __awaiter(this, void 0, void 0, function () {
|
121
141
|
var url;
|
@@ -125,15 +145,30 @@ var Booking = /** @class */ (function () {
|
|
125
145
|
});
|
126
146
|
});
|
127
147
|
};
|
128
|
-
|
148
|
+
/**
|
149
|
+
* This method returns the tours sold by this seller in the given city.
|
150
|
+
* If the sellerId is not set or it is 0, it will return the tours in the given city for all sellers.
|
151
|
+
* @param {string} [cityName=undefined] The name of the selected city (as returned by {@link getTourCities})
|
152
|
+
* @param {Booking.Currencies} currency The currency in which the prices should be returned
|
153
|
+
* @returns {Tour[]} The returned tours
|
154
|
+
*/
|
155
|
+
Booking.prototype.getTours = function (currency, cityName) {
|
129
156
|
return __awaiter(this, void 0, void 0, function () {
|
130
157
|
var url;
|
131
158
|
return __generator(this, function (_a) {
|
132
|
-
url = "".concat(this.config.API_ENDPOINT, "/booking/tours?").concat(new URLSearchParams(__assign(__assign(__assign({}, (this.sellerId && { sellerId: this.sellerId.toString() })), (
|
159
|
+
url = "".concat(this.config.API_ENDPOINT, "/booking/tours?").concat(new URLSearchParams(__assign(__assign(__assign({}, (this.sellerId && { sellerId: this.sellerId.toString() })), (cityName && { cityName: cityName })), { currency: currency })));
|
133
160
|
return [2 /*return*/, (0, apiCall_1.makeGet)(url)];
|
134
161
|
});
|
135
162
|
});
|
136
163
|
};
|
164
|
+
/**
|
165
|
+
* This method returns the tours available for the given date. This method can be used if the seller wants the user to book a specific date
|
166
|
+
* and/or a specific hour for the tour.
|
167
|
+
* You should call this method only if {@link Tour.isDateOptional} or {@link Tour.isDateRequired} is true for the selected tour.
|
168
|
+
* @param {number} tourId The id of the selected tour (can be retrieved in the object {@link Tour} returned by {@link getTours})
|
169
|
+
* @param {Date} date The date on which to get the tours
|
170
|
+
* @returns {TourTrip[]} The returned information about the tour (tripId and hour)
|
171
|
+
*/
|
137
172
|
Booking.prototype.getToursTrips = function (tourId, date) {
|
138
173
|
return __awaiter(this, void 0, void 0, function () {
|
139
174
|
var url;
|
@@ -158,6 +193,7 @@ var Booking = /** @class */ (function () {
|
|
158
193
|
});
|
159
194
|
});
|
160
195
|
};
|
196
|
+
//#endregion
|
161
197
|
Booking.prototype.fetchCart = function (cartId) {
|
162
198
|
return __awaiter(this, void 0, void 0, function () {
|
163
199
|
var url;
|
@@ -167,8 +203,12 @@ var Booking = /** @class */ (function () {
|
|
167
203
|
});
|
168
204
|
});
|
169
205
|
};
|
170
|
-
|
171
|
-
|
206
|
+
//#region Journeys config
|
207
|
+
/**
|
208
|
+
* This method returns the possible departures for all journeys (MLP) sold by this seller.
|
209
|
+
* @returns {string[]} The list of possible departures
|
210
|
+
*/
|
211
|
+
Booking.prototype.getJourneysDepartures = function () {
|
172
212
|
return __awaiter(this, void 0, void 0, function () {
|
173
213
|
var url;
|
174
214
|
return __generator(this, function (_a) {
|
@@ -177,7 +217,12 @@ var Booking = /** @class */ (function () {
|
|
177
217
|
});
|
178
218
|
});
|
179
219
|
};
|
180
|
-
|
220
|
+
/**
|
221
|
+
* This method returns the possible destination for the journeys sold by this seller that start at the selected departure.
|
222
|
+
* @param {string} departureStopName The departure stop name (as returned by {@link getJourneysDepartures})
|
223
|
+
* @returns {string[]} The list of possible destinations
|
224
|
+
*/
|
225
|
+
Booking.prototype.getJourneysDestinations = function (departureStopName) {
|
181
226
|
return __awaiter(this, void 0, void 0, function () {
|
182
227
|
var url;
|
183
228
|
return __generator(this, function (_a) {
|
@@ -186,16 +231,26 @@ var Booking = /** @class */ (function () {
|
|
186
231
|
});
|
187
232
|
});
|
188
233
|
};
|
189
|
-
|
234
|
+
/**
|
235
|
+
* This method returns the journeys that match the given parameters.
|
236
|
+
* Note that it will always return the journeys for the one-way trip.
|
237
|
+
* If you want to get the journeys for the round trip, you have to call this method twice (make sure to swap departureStopName and destinationStopName)
|
238
|
+
* @param {JourneySearch} params an object of type {@link JourneySearch} containing the parameters of the search
|
239
|
+
* @returns {Journey[]} The returned journeys that match the given parameters
|
240
|
+
*/
|
241
|
+
Booking.prototype.getJourneys = function (params) {
|
190
242
|
return __awaiter(this, void 0, void 0, function () {
|
191
243
|
var url;
|
192
244
|
return __generator(this, function (_a) {
|
245
|
+
if (params.departureStopName === undefined || params.destinationStopName === undefined) {
|
246
|
+
throw Error("Fields departureStopName and destinationStopName are required");
|
247
|
+
}
|
193
248
|
url = "".concat(this.config.API_ENDPOINT, "/booking/journeys?").concat(new URLSearchParams(__assign(__assign({}, (this.sellerId && { sellerId: this.sellerId.toString() })), { departureStopName: params.departureStopName, destinationStopName: params.destinationStopName, passengersNumber: params.passengersNumber.toString(), date: params.date.toDateString(), currency: params.currency, isRoundtrip: params.isRoundtrip.toString() })));
|
194
249
|
return [2 /*return*/, (0, apiCall_1.makeGet)(url)];
|
195
250
|
});
|
196
251
|
});
|
197
252
|
};
|
198
|
-
Booking.prototype.
|
253
|
+
Booking.prototype.createJourneyCart = function (tripCart) {
|
199
254
|
return __awaiter(this, void 0, void 0, function () {
|
200
255
|
var url;
|
201
256
|
var _this = this;
|
@@ -231,7 +286,7 @@ var Booking = /** @class */ (function () {
|
|
231
286
|
});
|
232
287
|
});
|
233
288
|
};
|
234
|
-
Booking.prototype.
|
289
|
+
Booking.prototype.movePassengers = function (params) {
|
235
290
|
return __awaiter(this, void 0, void 0, function () {
|
236
291
|
var url;
|
237
292
|
return __generator(this, function (_a) {
|
@@ -243,6 +298,79 @@ var Booking = /** @class */ (function () {
|
|
243
298
|
});
|
244
299
|
});
|
245
300
|
};
|
301
|
+
//#endregion
|
302
|
+
//#region Subscriptions config
|
303
|
+
/**
|
304
|
+
* This method returns the possible departures for all subscriptions sold by this seller.
|
305
|
+
* @returns {string[]} The list of possible departures
|
306
|
+
*/
|
307
|
+
Booking.prototype.getSubscriptionsDepartures = function () {
|
308
|
+
return __awaiter(this, void 0, void 0, function () {
|
309
|
+
var url;
|
310
|
+
return __generator(this, function (_a) {
|
311
|
+
url = "".concat(this.config.API_ENDPOINT, "/booking/subscriptions/departures?").concat(new URLSearchParams(__assign({}, (this.sellerId && { sellerId: this.sellerId.toString() }))));
|
312
|
+
return [2 /*return*/, (0, apiCall_1.makeGet)(url)];
|
313
|
+
});
|
314
|
+
});
|
315
|
+
};
|
316
|
+
/**
|
317
|
+
* This method returns the possible destination for the subscriptions sold by this seller that start at the selected departure.
|
318
|
+
* @param {string} departureStopName The departure stop name (as returned by {@link getSubscriptionsDepartures})
|
319
|
+
* @returns {string[]} The list of possible destinations
|
320
|
+
*/
|
321
|
+
Booking.prototype.getSubscrptionsDestinations = function (departureStopName) {
|
322
|
+
return __awaiter(this, void 0, void 0, function () {
|
323
|
+
var url;
|
324
|
+
return __generator(this, function (_a) {
|
325
|
+
url = "".concat(this.config.API_ENDPOINT, "/booking/subscriptions/destinations?").concat(new URLSearchParams(__assign(__assign({}, (this.sellerId && { sellerId: this.sellerId.toString() })), { departureStopName: departureStopName })));
|
326
|
+
return [2 /*return*/, (0, apiCall_1.makeGet)(url)];
|
327
|
+
});
|
328
|
+
});
|
329
|
+
};
|
330
|
+
/**
|
331
|
+
* This method returns the possible validity types for the subscriptions sold by this seller between the selected departure and destination.
|
332
|
+
* The validity type is the duration of the subscription (1 week, 1 month, etc.). See {@link ValidityTypes} for more details.
|
333
|
+
* @param {string} departureStopName The departure stop name (as returned by {@link getSubscriptionsDepartures})
|
334
|
+
* @param {string} destinationStopName The destination stop name (as returned by {@link getSubscriptionsDstinations})
|
335
|
+
* @returns {ValidityTypes[]} The list of possible validity types
|
336
|
+
*/
|
337
|
+
Booking.prototype.getSubscrptionsValidityTypes = function (departureStopName, destinationStopName) {
|
338
|
+
return __awaiter(this, void 0, void 0, function () {
|
339
|
+
var url;
|
340
|
+
return __generator(this, function (_a) {
|
341
|
+
url = "".concat(this.config.API_ENDPOINT, "/booking/subscriptions/validityTypes?").concat(new URLSearchParams(__assign(__assign({}, (this.sellerId && { sellerId: this.sellerId.toString() })), { departureStopName: departureStopName, destinationStopName: destinationStopName })));
|
342
|
+
return [2 /*return*/, (0, apiCall_1.makeGet)(url)];
|
343
|
+
});
|
344
|
+
});
|
345
|
+
};
|
346
|
+
/**
|
347
|
+
* This method returns the subscriptions that match the given parameters.
|
348
|
+
* Note that it will always return the subscription for the one-way trip.
|
349
|
+
* If you want to get the subscription for the round trip, you have to call this method twice (make sure to swap departureStopName and destinationStopName)
|
350
|
+
* @param {string} departureStopName The departure stop name (as returned by {@link getSubscriptionsDepartures})
|
351
|
+
* @param {string} destinationStopName The destination stop name (as returned by {@link getSubscriptionsDstinations})
|
352
|
+
* @param {string} validityType The validity type (as returned by {@link getSubscriptionsValidityTypes})
|
353
|
+
* @returns {Array<Subscription>} The subscriptions that match the given parameters
|
354
|
+
*/
|
355
|
+
Booking.prototype.getSubscrptions = function (departureStopName, destinationStopName, validityType) {
|
356
|
+
return __awaiter(this, void 0, void 0, function () {
|
357
|
+
var url;
|
358
|
+
return __generator(this, function (_a) {
|
359
|
+
url = "".concat(this.config.API_ENDPOINT, "/booking/subscriptions/search?").concat(new URLSearchParams(__assign(__assign({}, (this.sellerId && { sellerId: this.sellerId.toString() })), { departureStopName: departureStopName, destinationStopName: destinationStopName, validityType: validityType })));
|
360
|
+
return [2 /*return*/, (0, apiCall_1.makeGet)(url)];
|
361
|
+
});
|
362
|
+
});
|
363
|
+
};
|
364
|
+
Booking.prototype.getSubscrptionAvailabilities = function (departureStopName, destinationStopName, validityType) {
|
365
|
+
return __awaiter(this, void 0, void 0, function () {
|
366
|
+
var url;
|
367
|
+
return __generator(this, function (_a) {
|
368
|
+
url = "".concat(this.config.API_ENDPOINT, "/booking/subscriptions/search?").concat(new URLSearchParams(__assign(__assign({}, (this.sellerId && { sellerId: this.sellerId.toString() })), { departureStopName: departureStopName, destinationStopName: destinationStopName, validityType: validityType })));
|
369
|
+
return [2 /*return*/, (0, apiCall_1.makeGet)(url)];
|
370
|
+
});
|
371
|
+
});
|
372
|
+
};
|
373
|
+
//#endregion
|
246
374
|
Booking.prototype.getPassengersDetails = function () {
|
247
375
|
return __awaiter(this, void 0, void 0, function () {
|
248
376
|
var url;
|
@@ -281,10 +409,9 @@ exports.Booking = Booking;
|
|
281
409
|
(function (CartStatus) {
|
282
410
|
CartStatus["EMPTY"] = "EMPTY";
|
283
411
|
CartStatus["CREATION"] = "CREATION";
|
284
|
-
CartStatus["SEAT"] = "SEATS";
|
285
|
-
CartStatus["EXTRAS"] = "EXTRAS";
|
286
412
|
CartStatus["PASSENGERS"] = "PASSENGERS";
|
413
|
+
CartStatus["SEATS"] = "SEATS";
|
414
|
+
CartStatus["EXTRAS"] = "EXTRAS";
|
287
415
|
CartStatus["PAYMENT"] = "PAYMENT";
|
288
416
|
})(CartStatus = Booking.CartStatus || (Booking.CartStatus = {}));
|
289
|
-
})(Booking
|
290
|
-
exports.Booking = Booking;
|
417
|
+
})(Booking || (exports.Booking = Booking = {}));
|
package/lib/types/Cart.d.ts
CHANGED
File without changes
|
@@ -0,0 +1 @@
|
|
1
|
+
"use strict";
|
@@ -0,0 +1,10 @@
|
|
1
|
+
import { Booking } from "../..";
|
2
|
+
export type JourneySearch = {
|
3
|
+
departureStopName: string | undefined;
|
4
|
+
destinationStopName: string | undefined;
|
5
|
+
passengersNumber: number;
|
6
|
+
date: Date;
|
7
|
+
currency: Booking.Currencies;
|
8
|
+
isRoundtrip: boolean;
|
9
|
+
};
|
10
|
+
export declare const DefaultJourneySearch: JourneySearch;
|
@@ -0,0 +1,12 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.DefaultJourneySearch = void 0;
|
4
|
+
var __1 = require("../..");
|
5
|
+
exports.DefaultJourneySearch = {
|
6
|
+
departureStopName: "",
|
7
|
+
destinationStopName: "",
|
8
|
+
passengersNumber: 1,
|
9
|
+
date: new Date(Date.UTC(new Date().getFullYear(), new Date().getMonth(), new Date().getDate(), 0, 1)),
|
10
|
+
currency: __1.Booking.Currencies.EUR,
|
11
|
+
isRoundtrip: false,
|
12
|
+
};
|
@@ -0,0 +1,12 @@
|
|
1
|
+
export type Subscription = {
|
2
|
+
departurePhysicalAgencyStopId: number;
|
3
|
+
departureStopName: string;
|
4
|
+
destinationPhysicalAgencyStopId: number;
|
5
|
+
destinationStopName: string;
|
6
|
+
departureTime: string;
|
7
|
+
destinationTime: string;
|
8
|
+
lineName: string;
|
9
|
+
routeId: number;
|
10
|
+
routeName: string;
|
11
|
+
sellerId: number;
|
12
|
+
};
|
@@ -0,0 +1,10 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.ValidityTypes = void 0;
|
4
|
+
var ValidityTypes;
|
5
|
+
(function (ValidityTypes) {
|
6
|
+
ValidityTypes["WORKING_WEEK"] = "WORKING_WEEK";
|
7
|
+
ValidityTypes["WEEKLY"] = "WEEKLY";
|
8
|
+
ValidityTypes["MONTHLY"] = "MONTHLY";
|
9
|
+
ValidityTypes["YEARLY"] = "YEARLY";
|
10
|
+
})(ValidityTypes || (exports.ValidityTypes = ValidityTypes = {}));
|
package/lib/types/Tour.d.ts
CHANGED
@@ -0,0 +1,18 @@
|
|
1
|
+
import { Info } from "../Info";
|
2
|
+
import { Line } from "../Line";
|
3
|
+
import { TariffMatrix, TariffType, TermsType } from "../TermsAndTariffs";
|
4
|
+
export type Tour = {
|
5
|
+
id: number;
|
6
|
+
line: Line;
|
7
|
+
info: Info;
|
8
|
+
tariffsMatrix: TariffMatrix;
|
9
|
+
tariffTypes: TariffType[];
|
10
|
+
termsTypes: TermsType[];
|
11
|
+
isDateOptional: boolean;
|
12
|
+
isDateRequired: boolean;
|
13
|
+
isTripMandatory: boolean;
|
14
|
+
};
|
15
|
+
export type TourTrip = {
|
16
|
+
tripId: number;
|
17
|
+
hour: Date;
|
18
|
+
};
|
package/lib/types/Trip.d.ts
CHANGED
@@ -1,15 +1,9 @@
|
|
1
|
-
import { Info } from "./Info";
|
2
|
-
import { Stop } from "./Stop";
|
3
1
|
import { TariffMatrix, TariffType, TermsType } from "./TermsAndTariffs";
|
4
2
|
export type Trip = {
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
tariffsMatrix: TariffMatrix;
|
12
|
-
tariffTypes: TariffType[];
|
13
|
-
termsTypes: TermsType[];
|
14
|
-
}[];
|
3
|
+
id: number;
|
4
|
+
departureStopName: string;
|
5
|
+
destinationStopName: string;
|
6
|
+
tariffsMatrix: TariffMatrix;
|
7
|
+
tariffTypes: TariffType[];
|
8
|
+
termsTypes: TermsType[];
|
15
9
|
};
|
package/lib/utils/apiCall.js
CHANGED
@@ -1,4 +1,15 @@
|
|
1
1
|
"use strict";
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
3
|
+
__assign = Object.assign || function(t) {
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
5
|
+
s = arguments[i];
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
7
|
+
t[p] = s[p];
|
8
|
+
}
|
9
|
+
return t;
|
10
|
+
};
|
11
|
+
return __assign.apply(this, arguments);
|
12
|
+
};
|
2
13
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
3
14
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
4
15
|
return new (P || (P = Promise))(function (resolve, reject) {
|
@@ -49,10 +60,7 @@ var makeGet = function (url) { return __awaiter(void 0, void 0, void 0, function
|
|
49
60
|
case 0:
|
50
61
|
_a.trys.push([0, 2, , 3]);
|
51
62
|
return [4 /*yield*/, axios_1.default.get(url, {
|
52
|
-
headers: {
|
53
|
-
"Content-Type": "application/json",
|
54
|
-
"Ocp-Apim-Subscription-Key": (0, config_1.getConfig)().OCP_SUBSCRIPTION_KEY,
|
55
|
-
},
|
63
|
+
headers: __assign({ "Content-Type": "application/json", "Ocp-Apim-Subscription-Key": (0, config_1.getConfig)().OCP_SUBSCRIPTION_KEY }, ((0, config_1.getConfig)().ACCESS_TOKEN && { "Authorization": "Bearer ".concat((0, config_1.getConfig)().ACCESS_TOKEN) })),
|
56
64
|
})];
|
57
65
|
case 1:
|
58
66
|
response = _a.sent();
|
@@ -80,10 +88,7 @@ var makePost = function (url, data) { return __awaiter(void 0, void 0, void 0, f
|
|
80
88
|
case 0:
|
81
89
|
_a.trys.push([0, 2, , 3]);
|
82
90
|
return [4 /*yield*/, axios_1.default.post(url, data, {
|
83
|
-
headers: {
|
84
|
-
"Content-Type": "application/json",
|
85
|
-
"Ocp-Apim-Subscription-Key": (0, config_1.getConfig)().OCP_SUBSCRIPTION_KEY,
|
86
|
-
},
|
91
|
+
headers: __assign({ "Content-Type": "application/json", "Ocp-Apim-Subscription-Key": (0, config_1.getConfig)().OCP_SUBSCRIPTION_KEY }, ((0, config_1.getConfig)().ACCESS_TOKEN && { "Authorization": "Bearer ".concat((0, config_1.getConfig)().ACCESS_TOKEN) })),
|
87
92
|
})];
|
88
93
|
case 1:
|
89
94
|
response = _a.sent();
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "mts-booking-library",
|
3
|
-
"version": "1.0.
|
3
|
+
"version": "1.0.2",
|
4
4
|
"description": "Library for use MyTicketSolution Booking API",
|
5
5
|
"main": "lib/index.js",
|
6
6
|
"types": "lib/index.d.ts",
|
@@ -14,10 +14,10 @@
|
|
14
14
|
},
|
15
15
|
"license": "ISC",
|
16
16
|
"devDependencies": {
|
17
|
-
"@types/jest": "^29.5.
|
18
|
-
"jest": "^29.
|
19
|
-
"ts-jest": "^29.1.
|
20
|
-
"typescript": "^5.
|
17
|
+
"@types/jest": "^29.5.4",
|
18
|
+
"jest": "^29.7.0",
|
19
|
+
"ts-jest": "^29.1.1",
|
20
|
+
"typescript": "^5.2.2"
|
21
21
|
},
|
22
22
|
"files": [
|
23
23
|
"lib/**/*"
|
@@ -28,7 +28,7 @@
|
|
28
28
|
],
|
29
29
|
"author": "M",
|
30
30
|
"dependencies": {
|
31
|
-
"axios": "^1.
|
32
|
-
"node-localstorage": "^
|
31
|
+
"axios": "^1.5.0",
|
32
|
+
"node-localstorage": "^3.0.5"
|
33
33
|
}
|
34
34
|
}
|