mts-booking-library 1.0.5 → 1.1.1
Sign up to get free protection for your applications and to get access to all the features.
- package/lib/booking/booking.d.ts +44 -0
- package/lib/booking/booking.js +105 -0
- package/lib/booking/journeyBooking.d.ts +49 -0
- package/lib/booking/journeyBooking.js +246 -0
- package/lib/booking/serviceBooking.d.ts +36 -0
- package/lib/booking/serviceBooking.js +190 -0
- package/lib/booking/subscriptionBooking.d.ts +50 -0
- package/lib/booking/subscriptionBooking.js +201 -0
- package/lib/config.d.ts +2 -1
- package/lib/config.js +5 -2
- package/lib/index.d.ts +15 -140
- package/lib/index.js +16 -415
- package/lib/types/common/Cart.d.ts +47 -0
- package/lib/types/common/Person.d.ts +31 -0
- package/lib/types/common/Person.js +11 -0
- package/lib/types/{TermsAndTariffs.d.ts → common/Tariffs.d.ts} +5 -0
- package/lib/types/journeys/JourneyCart.d.ts +55 -0
- package/lib/types/journeys/JourneyInfo.d.ts +18 -0
- package/lib/types/journeys/JourneySearch.d.ts +19 -0
- package/lib/types/{Journeys → journeys}/JourneySearch.js +7 -5
- package/lib/types/journeys/Stop.d.ts +16 -0
- package/lib/types/{Journeys → journeys}/Trip.d.ts +1 -1
- package/lib/types/services/Line.d.ts +14 -0
- package/lib/types/services/Service.d.ts +33 -0
- package/lib/types/services/ServiceCart.d.ts +46 -0
- package/lib/types/services/ServiceInfo.d.ts +14 -0
- package/lib/utils/apiCall.js +22 -2
- package/package.json +3 -3
- package/lib/types/Booking.d.ts +0 -0
- package/lib/types/Booking.js +0 -1
- package/lib/types/Cart.d.ts +0 -79
- package/lib/types/Details.d.ts +0 -9
- package/lib/types/Info.d.ts +0 -8
- package/lib/types/Journey.d.ts +0 -8
- package/lib/types/JourneySearch.d.ts +0 -9
- package/lib/types/Journeys/BusMatrix.d.ts +0 -0
- package/lib/types/Journeys/BusMatrix.js +0 -1
- package/lib/types/Journeys/Journey.d.ts +0 -8
- package/lib/types/Journeys/JourneySearch.d.ts +0 -11
- package/lib/types/Journeys/Stop.d.ts +0 -7
- package/lib/types/Line.d.ts +0 -6
- package/lib/types/Person.d.ts +0 -7
- package/lib/types/Stop.d.ts +0 -7
- package/lib/types/Stop.js +0 -2
- package/lib/types/Subscriptions/ValidityTypes.d.ts +0 -6
- package/lib/types/Subscriptions/ValidityTypes.js +0 -10
- package/lib/types/TermsAndTariffs.js +0 -2
- package/lib/types/Tour.d.ts +0 -18
- package/lib/types/Tour.js +0 -2
- package/lib/types/Tours/Tour.d.ts +0 -18
- package/lib/types/Tours/Tour.js +0 -2
- package/lib/types/Tours.d.ts +0 -0
- package/lib/types/Tours.js +0 -1
- package/lib/types/Trip.d.ts +0 -9
- package/lib/types/Trip.js +0 -2
- package/lib/types/TripSearch.d.ts +0 -9
- package/lib/types/TripSearch.js +0 -2
- /package/lib/types/{Cart.js → common/Cart.js} +0 -0
- /package/lib/types/{Details.js → common/Tariffs.js} +0 -0
- /package/lib/types/{BusMatrix.d.ts → journeys/BusMatrix.d.ts} +0 -0
- /package/lib/types/{BusMatrix.js → journeys/BusMatrix.js} +0 -0
- /package/lib/types/{Info.js → journeys/JourneyCart.js} +0 -0
- /package/lib/types/{Journey.js → journeys/JourneyInfo.js} +0 -0
- /package/lib/types/{Journeys → journeys}/Stop.js +0 -0
- /package/lib/types/{Journeys → journeys}/Trip.js +0 -0
- /package/lib/types/{Line.js → services/Line.js} +0 -0
- /package/lib/types/{JourneySearch.js → services/Service.js} +0 -0
- /package/lib/types/{Journeys/Journey.js → services/ServiceCart.js} +0 -0
- /package/lib/types/{Person.js → services/ServiceInfo.js} +0 -0
- /package/lib/types/{Subscriptions → subscriptions}/Subscrptions.d.ts +0 -0
- /package/lib/types/{Subscriptions → subscriptions}/Subscrptions.js +0 -0
@@ -0,0 +1,190 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __extends = (this && this.__extends) || (function () {
|
3
|
+
var extendStatics = function (d, b) {
|
4
|
+
extendStatics = Object.setPrototypeOf ||
|
5
|
+
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
6
|
+
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
7
|
+
return extendStatics(d, b);
|
8
|
+
};
|
9
|
+
return function (d, b) {
|
10
|
+
if (typeof b !== "function" && b !== null)
|
11
|
+
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
12
|
+
extendStatics(d, b);
|
13
|
+
function __() { this.constructor = d; }
|
14
|
+
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
15
|
+
};
|
16
|
+
})();
|
17
|
+
var __assign = (this && this.__assign) || function () {
|
18
|
+
__assign = Object.assign || function(t) {
|
19
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
20
|
+
s = arguments[i];
|
21
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
22
|
+
t[p] = s[p];
|
23
|
+
}
|
24
|
+
return t;
|
25
|
+
};
|
26
|
+
return __assign.apply(this, arguments);
|
27
|
+
};
|
28
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
29
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
30
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
31
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
32
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
33
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
34
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
35
|
+
});
|
36
|
+
};
|
37
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
38
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
39
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
40
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
41
|
+
function step(op) {
|
42
|
+
if (f) throw new TypeError("Generator is already executing.");
|
43
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
44
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
45
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
46
|
+
switch (op[0]) {
|
47
|
+
case 0: case 1: t = op; break;
|
48
|
+
case 4: _.label++; return { value: op[1], done: false };
|
49
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
50
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
51
|
+
default:
|
52
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
53
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
54
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
55
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
56
|
+
if (t[2]) _.ops.pop();
|
57
|
+
_.trys.pop(); continue;
|
58
|
+
}
|
59
|
+
op = body.call(thisArg, _);
|
60
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
61
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
62
|
+
}
|
63
|
+
};
|
64
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
65
|
+
exports.ServiceBooking = void 0;
|
66
|
+
var apiCall_1 = require("../utils/apiCall");
|
67
|
+
var booking_1 = require("./booking");
|
68
|
+
var ServiceBooking = /** @class */ (function (_super) {
|
69
|
+
__extends(ServiceBooking, _super);
|
70
|
+
function ServiceBooking(env, sub_key, onCartExpiration, debug, access_token, sellerId) {
|
71
|
+
if (debug === void 0) { debug = false; }
|
72
|
+
var _this =
|
73
|
+
// Call Booking constructor
|
74
|
+
_super.call(this, env, sub_key, onCartExpiration, debug, access_token, sellerId) || this;
|
75
|
+
var cartId = localStorage.getItem("cartId");
|
76
|
+
if (cartId) {
|
77
|
+
_this.fetchAndSetCart(parseInt(cartId));
|
78
|
+
}
|
79
|
+
return _this;
|
80
|
+
}
|
81
|
+
ServiceBooking.prototype.getCart = function () {
|
82
|
+
return this.cart;
|
83
|
+
};
|
84
|
+
ServiceBooking.prototype.fetchAndSetCart = function (cartId) {
|
85
|
+
return __awaiter(this, void 0, void 0, function () {
|
86
|
+
var _this = this;
|
87
|
+
return __generator(this, function (_a) {
|
88
|
+
this.fetchCart(cartId).then(function (cart) {
|
89
|
+
var cartDate = new Date(cart.bookingDueDate);
|
90
|
+
if (cartDate > new Date()) {
|
91
|
+
_this.cart = cart;
|
92
|
+
_this.bookingDueDate = cartDate; // See Booking class
|
93
|
+
_this.cartStatus = cart.status;
|
94
|
+
_this.createCartTimer(cartDate);
|
95
|
+
}
|
96
|
+
});
|
97
|
+
return [2 /*return*/];
|
98
|
+
});
|
99
|
+
});
|
100
|
+
};
|
101
|
+
ServiceBooking.prototype.createCartTimer = function (expiringDate) {
|
102
|
+
return __awaiter(this, void 0, void 0, function () {
|
103
|
+
var _this = this;
|
104
|
+
return __generator(this, function (_a) {
|
105
|
+
setTimeout(function () {
|
106
|
+
localStorage.removeItem("cartId");
|
107
|
+
// Put actions that have to be done when timer expires here
|
108
|
+
_this.cartStatus = booking_1.Booking.CartStatus.EMPTY;
|
109
|
+
_this.cart = undefined;
|
110
|
+
_this.bookingDueDate = undefined; // See Booking class
|
111
|
+
_this.onCartExpiration();
|
112
|
+
}, expiringDate.valueOf() - new Date().valueOf());
|
113
|
+
return [2 /*return*/];
|
114
|
+
});
|
115
|
+
});
|
116
|
+
};
|
117
|
+
ServiceBooking.prototype.fetchCart = function (cartId) {
|
118
|
+
return __awaiter(this, void 0, void 0, function () {
|
119
|
+
var url;
|
120
|
+
return __generator(this, function (_a) {
|
121
|
+
url = "".concat(this.config.API_ENDPOINT, "/booking/cart/\n ").concat(new URLSearchParams({ cartId: cartId.toString() }));
|
122
|
+
return [2 /*return*/, (0, apiCall_1.makeGet)(url)];
|
123
|
+
});
|
124
|
+
});
|
125
|
+
};
|
126
|
+
/**
|
127
|
+
* This method returns the list of cities in which the seller offers tours.
|
128
|
+
* If the sellerId is not set or it is 0, it will return the list of cities for all sellers.
|
129
|
+
* @returns {string[]} The list of possible cities
|
130
|
+
*/
|
131
|
+
ServiceBooking.prototype.getServiceCities = function () {
|
132
|
+
return __awaiter(this, void 0, void 0, function () {
|
133
|
+
var url;
|
134
|
+
return __generator(this, function (_a) {
|
135
|
+
url = "".concat(this.config.API_ENDPOINT, "/booking/services/cities?").concat(new URLSearchParams(__assign({}, (this.sellerId && { sellerId: this.sellerId.toString() }))));
|
136
|
+
return [2 /*return*/, (0, apiCall_1.makeGet)(url)];
|
137
|
+
});
|
138
|
+
});
|
139
|
+
};
|
140
|
+
/**
|
141
|
+
* This method returns the tours sold by this seller in the given city.
|
142
|
+
* If the sellerId is not set or it is 0, it will return the tours in the given city for all sellers.
|
143
|
+
* @param {string} [cityName=undefined] The name of the selected city (as returned by {@link getTourCities})
|
144
|
+
* @param {Booking.Currencies} currency The currency in which the prices should be returned
|
145
|
+
* @returns {Tour[]} The returned tours
|
146
|
+
*/
|
147
|
+
ServiceBooking.prototype.getServices = function (currency, cityName) {
|
148
|
+
return __awaiter(this, void 0, void 0, function () {
|
149
|
+
var url;
|
150
|
+
return __generator(this, function (_a) {
|
151
|
+
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 })));
|
152
|
+
return [2 /*return*/, (0, apiCall_1.makeGet)(url)];
|
153
|
+
});
|
154
|
+
});
|
155
|
+
};
|
156
|
+
/**
|
157
|
+
* 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
|
158
|
+
* and/or a specific hour for the tour.
|
159
|
+
* You should call this method only if {@link Service.isDateOptional} or {@link Service.isDateRequired} is true for the selected tour.
|
160
|
+
* @param {number} serviceId The id of the selected tour (can be retrieved in the object {@link Service} returned by {@link getTours})
|
161
|
+
* @param {Date} date The date on which to get the tours
|
162
|
+
* @returns {ServiceTrip[]} The returned information about the tour (tripId and hour)
|
163
|
+
*/
|
164
|
+
ServiceBooking.prototype.getServiceTrips = function (serviceId, date) {
|
165
|
+
return __awaiter(this, void 0, void 0, function () {
|
166
|
+
var url;
|
167
|
+
return __generator(this, function (_a) {
|
168
|
+
url = "".concat(this.config.API_ENDPOINT, "/booking/services/").concat(serviceId, "/trips?").concat(new URLSearchParams(__assign(__assign({}, (this.sellerId && { sellerId: this.sellerId.toString() })), { date: date.toDateString() })));
|
169
|
+
return [2 /*return*/, (0, apiCall_1.makeGet)(url)];
|
170
|
+
});
|
171
|
+
});
|
172
|
+
};
|
173
|
+
ServiceBooking.prototype.createServiceCart = function (serviceCart) {
|
174
|
+
return __awaiter(this, void 0, void 0, function () {
|
175
|
+
var url;
|
176
|
+
var _this = this;
|
177
|
+
return __generator(this, function (_a) {
|
178
|
+
url = "".concat(this.config.API_ENDPOINT, "/booking/services/cart");
|
179
|
+
return [2 /*return*/, (0, apiCall_1.makePost)(url, serviceCart).then(function (cart) {
|
180
|
+
_this.cart = cart.cart;
|
181
|
+
_this.cartStatus = cart.cart.status;
|
182
|
+
_this.createCartTimer(new Date(cart.cart.bookingDueDate));
|
183
|
+
return cart.cart;
|
184
|
+
})];
|
185
|
+
});
|
186
|
+
});
|
187
|
+
};
|
188
|
+
return ServiceBooking;
|
189
|
+
}(booking_1.Booking));
|
190
|
+
exports.ServiceBooking = ServiceBooking;
|
@@ -0,0 +1,50 @@
|
|
1
|
+
import { MTSEnvs } from "../config";
|
2
|
+
import { Cart } from "../types/common/Cart";
|
3
|
+
import { Subscription } from "../types/subscriptions/Subscrptions";
|
4
|
+
import { Booking } from "./booking";
|
5
|
+
export declare class SubscriptionBooking extends Booking {
|
6
|
+
private cart?;
|
7
|
+
constructor(env: MTSEnvs, sub_key: string, onCartExpiration: () => void, debug?: boolean, access_token?: string, sellerId?: number);
|
8
|
+
getCart(): Cart | undefined;
|
9
|
+
private fetchAndSetCart;
|
10
|
+
private createCartTimer;
|
11
|
+
fetchCart(cartId: number): Promise<Cart>;
|
12
|
+
/**
|
13
|
+
* This method returns the possible departures for all subscriptions sold by this seller.
|
14
|
+
* @returns {string[]} The list of possible departures
|
15
|
+
*/
|
16
|
+
getSubscriptionsDepartures(): Promise<string[]>;
|
17
|
+
/**
|
18
|
+
* This method returns the possible destination for the subscriptions sold by this seller that start at the selected departure.
|
19
|
+
* @param {string} departureStopName The departure stop name (as returned by {@link getSubscriptionsDepartures})
|
20
|
+
* @returns {string[]} The list of possible destinations
|
21
|
+
*/
|
22
|
+
getSubscrptionsDestinations(departureStopName: string): Promise<string[]>;
|
23
|
+
/**
|
24
|
+
* This method returns the possible validity types for the subscriptions sold by this seller between the selected departure and destination.
|
25
|
+
* The validity type is the duration of the subscription (1 week, 1 month, etc.). See {@link ValidityTypes} for more details.
|
26
|
+
* @param {string} departureStopName The departure stop name (as returned by {@link getSubscriptionsDepartures})
|
27
|
+
* @param {string} destinationStopName The destination stop name (as returned by {@link getSubscriptionsDstinations})
|
28
|
+
* @returns {ValidityTypes[]} The list of possible validity types
|
29
|
+
*/
|
30
|
+
getSubscrptionsValidityTypes(departureStopName: string, destinationStopName: string): Promise<SubscriptionBooking.ValidityTypes[]>;
|
31
|
+
/**
|
32
|
+
* This method returns the subscriptions that match the given parameters.
|
33
|
+
* Note that it will always return the subscription for the one-way trip.
|
34
|
+
* 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)
|
35
|
+
* @param {string} departureStopName The departure stop name (as returned by {@link getSubscriptionsDepartures})
|
36
|
+
* @param {string} destinationStopName The destination stop name (as returned by {@link getSubscriptionsDstinations})
|
37
|
+
* @param {string} validityType The validity type (as returned by {@link getSubscriptionsValidityTypes})
|
38
|
+
* @returns {Array<Subscription>} The subscriptions that match the given parameters
|
39
|
+
*/
|
40
|
+
getSubscrptions(departureStopName: string, destinationStopName: string, validityType: string): Promise<Subscription[]>;
|
41
|
+
getSubscrptionAvailabilities(departureStopName: string, destinationStopName: string, validityType: string): Promise<Subscription[]>;
|
42
|
+
}
|
43
|
+
export declare namespace SubscriptionBooking {
|
44
|
+
enum ValidityTypes {
|
45
|
+
WORKING_WEEK = "WORKING_WEEK",
|
46
|
+
WEEKLY = "WEEKLY",
|
47
|
+
MONTHLY = "MONTHLY",
|
48
|
+
YEARLY = "YEARLY"
|
49
|
+
}
|
50
|
+
}
|
@@ -0,0 +1,201 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __extends = (this && this.__extends) || (function () {
|
3
|
+
var extendStatics = function (d, b) {
|
4
|
+
extendStatics = Object.setPrototypeOf ||
|
5
|
+
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
6
|
+
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
7
|
+
return extendStatics(d, b);
|
8
|
+
};
|
9
|
+
return function (d, b) {
|
10
|
+
if (typeof b !== "function" && b !== null)
|
11
|
+
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
12
|
+
extendStatics(d, b);
|
13
|
+
function __() { this.constructor = d; }
|
14
|
+
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
15
|
+
};
|
16
|
+
})();
|
17
|
+
var __assign = (this && this.__assign) || function () {
|
18
|
+
__assign = Object.assign || function(t) {
|
19
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
20
|
+
s = arguments[i];
|
21
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
22
|
+
t[p] = s[p];
|
23
|
+
}
|
24
|
+
return t;
|
25
|
+
};
|
26
|
+
return __assign.apply(this, arguments);
|
27
|
+
};
|
28
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
29
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
30
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
31
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
32
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
33
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
34
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
35
|
+
});
|
36
|
+
};
|
37
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
38
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
39
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
40
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
41
|
+
function step(op) {
|
42
|
+
if (f) throw new TypeError("Generator is already executing.");
|
43
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
44
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
45
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
46
|
+
switch (op[0]) {
|
47
|
+
case 0: case 1: t = op; break;
|
48
|
+
case 4: _.label++; return { value: op[1], done: false };
|
49
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
50
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
51
|
+
default:
|
52
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
53
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
54
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
55
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
56
|
+
if (t[2]) _.ops.pop();
|
57
|
+
_.trys.pop(); continue;
|
58
|
+
}
|
59
|
+
op = body.call(thisArg, _);
|
60
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
61
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
62
|
+
}
|
63
|
+
};
|
64
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
65
|
+
exports.SubscriptionBooking = void 0;
|
66
|
+
var apiCall_1 = require("../utils/apiCall");
|
67
|
+
var booking_1 = require("./booking");
|
68
|
+
var SubscriptionBooking = /** @class */ (function (_super) {
|
69
|
+
__extends(SubscriptionBooking, _super);
|
70
|
+
function SubscriptionBooking(env, sub_key, onCartExpiration, debug, access_token, sellerId) {
|
71
|
+
if (debug === void 0) { debug = false; }
|
72
|
+
// Call Booking constructor
|
73
|
+
return _super.call(this, env, sub_key, onCartExpiration, debug, access_token, sellerId) || this;
|
74
|
+
}
|
75
|
+
SubscriptionBooking.prototype.getCart = function () {
|
76
|
+
return this.cart;
|
77
|
+
};
|
78
|
+
SubscriptionBooking.prototype.fetchAndSetCart = function (cartId) {
|
79
|
+
return __awaiter(this, void 0, void 0, function () {
|
80
|
+
var _this = this;
|
81
|
+
return __generator(this, function (_a) {
|
82
|
+
this.fetchCart(cartId).then(function (cart) {
|
83
|
+
var cartDate = new Date(cart.bookingDueDate);
|
84
|
+
if (cartDate > new Date()) {
|
85
|
+
_this.cart = cart;
|
86
|
+
_this.bookingDueDate = cartDate; // See Booking class
|
87
|
+
_this.cartStatus = cart.status;
|
88
|
+
_this.createCartTimer(cartDate);
|
89
|
+
}
|
90
|
+
});
|
91
|
+
return [2 /*return*/];
|
92
|
+
});
|
93
|
+
});
|
94
|
+
};
|
95
|
+
SubscriptionBooking.prototype.createCartTimer = function (expiringDate) {
|
96
|
+
return __awaiter(this, void 0, void 0, function () {
|
97
|
+
var _this = this;
|
98
|
+
return __generator(this, function (_a) {
|
99
|
+
setTimeout(function () {
|
100
|
+
localStorage.removeItem("cartId");
|
101
|
+
// Put actions that have to be done when timer expires here
|
102
|
+
_this.cartStatus = booking_1.Booking.CartStatus.EMPTY;
|
103
|
+
_this.cart = undefined;
|
104
|
+
_this.bookingDueDate = undefined; // See Booking class
|
105
|
+
_this.onCartExpiration();
|
106
|
+
}, expiringDate.valueOf() - new Date().valueOf());
|
107
|
+
return [2 /*return*/];
|
108
|
+
});
|
109
|
+
});
|
110
|
+
};
|
111
|
+
SubscriptionBooking.prototype.fetchCart = function (cartId) {
|
112
|
+
return __awaiter(this, void 0, void 0, function () {
|
113
|
+
var url;
|
114
|
+
return __generator(this, function (_a) {
|
115
|
+
url = "".concat(this.config.API_ENDPOINT, "/booking/tours/cart/").concat(cartId);
|
116
|
+
return [2 /*return*/, (0, apiCall_1.makeGet)(url)];
|
117
|
+
});
|
118
|
+
});
|
119
|
+
};
|
120
|
+
/**
|
121
|
+
* This method returns the possible departures for all subscriptions sold by this seller.
|
122
|
+
* @returns {string[]} The list of possible departures
|
123
|
+
*/
|
124
|
+
SubscriptionBooking.prototype.getSubscriptionsDepartures = function () {
|
125
|
+
return __awaiter(this, void 0, void 0, function () {
|
126
|
+
var url;
|
127
|
+
return __generator(this, function (_a) {
|
128
|
+
url = "".concat(this.config.API_ENDPOINT, "/booking/subscriptions/departures?").concat(new URLSearchParams(__assign({}, (this.sellerId && { sellerId: this.sellerId.toString() }))));
|
129
|
+
return [2 /*return*/, (0, apiCall_1.makeGet)(url)];
|
130
|
+
});
|
131
|
+
});
|
132
|
+
};
|
133
|
+
/**
|
134
|
+
* This method returns the possible destination for the subscriptions sold by this seller that start at the selected departure.
|
135
|
+
* @param {string} departureStopName The departure stop name (as returned by {@link getSubscriptionsDepartures})
|
136
|
+
* @returns {string[]} The list of possible destinations
|
137
|
+
*/
|
138
|
+
SubscriptionBooking.prototype.getSubscrptionsDestinations = function (departureStopName) {
|
139
|
+
return __awaiter(this, void 0, void 0, function () {
|
140
|
+
var url;
|
141
|
+
return __generator(this, function (_a) {
|
142
|
+
url = "".concat(this.config.API_ENDPOINT, "/booking/subscriptions/destinations?").concat(new URLSearchParams(__assign(__assign({}, (this.sellerId && { sellerId: this.sellerId.toString() })), { departureStopName: departureStopName })));
|
143
|
+
return [2 /*return*/, (0, apiCall_1.makeGet)(url)];
|
144
|
+
});
|
145
|
+
});
|
146
|
+
};
|
147
|
+
/**
|
148
|
+
* This method returns the possible validity types for the subscriptions sold by this seller between the selected departure and destination.
|
149
|
+
* The validity type is the duration of the subscription (1 week, 1 month, etc.). See {@link ValidityTypes} for more details.
|
150
|
+
* @param {string} departureStopName The departure stop name (as returned by {@link getSubscriptionsDepartures})
|
151
|
+
* @param {string} destinationStopName The destination stop name (as returned by {@link getSubscriptionsDstinations})
|
152
|
+
* @returns {ValidityTypes[]} The list of possible validity types
|
153
|
+
*/
|
154
|
+
SubscriptionBooking.prototype.getSubscrptionsValidityTypes = function (departureStopName, destinationStopName) {
|
155
|
+
return __awaiter(this, void 0, void 0, function () {
|
156
|
+
var url;
|
157
|
+
return __generator(this, function (_a) {
|
158
|
+
url = "".concat(this.config.API_ENDPOINT, "/booking/subscriptions/validityTypes?").concat(new URLSearchParams(__assign(__assign({}, (this.sellerId && { sellerId: this.sellerId.toString() })), { departureStopName: departureStopName, destinationStopName: destinationStopName })));
|
159
|
+
return [2 /*return*/, (0, apiCall_1.makeGet)(url)];
|
160
|
+
});
|
161
|
+
});
|
162
|
+
};
|
163
|
+
/**
|
164
|
+
* This method returns the subscriptions that match the given parameters.
|
165
|
+
* Note that it will always return the subscription for the one-way trip.
|
166
|
+
* 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)
|
167
|
+
* @param {string} departureStopName The departure stop name (as returned by {@link getSubscriptionsDepartures})
|
168
|
+
* @param {string} destinationStopName The destination stop name (as returned by {@link getSubscriptionsDstinations})
|
169
|
+
* @param {string} validityType The validity type (as returned by {@link getSubscriptionsValidityTypes})
|
170
|
+
* @returns {Array<Subscription>} The subscriptions that match the given parameters
|
171
|
+
*/
|
172
|
+
SubscriptionBooking.prototype.getSubscrptions = function (departureStopName, destinationStopName, validityType) {
|
173
|
+
return __awaiter(this, void 0, void 0, function () {
|
174
|
+
var url;
|
175
|
+
return __generator(this, function (_a) {
|
176
|
+
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 })));
|
177
|
+
return [2 /*return*/, (0, apiCall_1.makeGet)(url)];
|
178
|
+
});
|
179
|
+
});
|
180
|
+
};
|
181
|
+
SubscriptionBooking.prototype.getSubscrptionAvailabilities = function (departureStopName, destinationStopName, validityType) {
|
182
|
+
return __awaiter(this, void 0, void 0, function () {
|
183
|
+
var url;
|
184
|
+
return __generator(this, function (_a) {
|
185
|
+
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 })));
|
186
|
+
return [2 /*return*/, (0, apiCall_1.makeGet)(url)];
|
187
|
+
});
|
188
|
+
});
|
189
|
+
};
|
190
|
+
return SubscriptionBooking;
|
191
|
+
}(booking_1.Booking));
|
192
|
+
exports.SubscriptionBooking = SubscriptionBooking;
|
193
|
+
(function (SubscriptionBooking) {
|
194
|
+
var ValidityTypes;
|
195
|
+
(function (ValidityTypes) {
|
196
|
+
ValidityTypes["WORKING_WEEK"] = "WORKING_WEEK";
|
197
|
+
ValidityTypes["WEEKLY"] = "WEEKLY";
|
198
|
+
ValidityTypes["MONTHLY"] = "MONTHLY";
|
199
|
+
ValidityTypes["YEARLY"] = "YEARLY";
|
200
|
+
})(ValidityTypes = SubscriptionBooking.ValidityTypes || (SubscriptionBooking.ValidityTypes = {}));
|
201
|
+
})(SubscriptionBooking || (exports.SubscriptionBooking = SubscriptionBooking = {}));
|
package/lib/config.d.ts
CHANGED
@@ -8,6 +8,7 @@ export type MTSConfig = {
|
|
8
8
|
API_ENDPOINT: string;
|
9
9
|
OCP_SUBSCRIPTION_KEY: string;
|
10
10
|
ACCESS_TOKEN: string | undefined;
|
11
|
+
DEBUG: boolean;
|
11
12
|
};
|
12
|
-
export declare const setConfig: (env: MTSEnvs, sub_key: string, access_token?: string) => MTSConfig;
|
13
|
+
export declare const setConfig: (env: MTSEnvs, sub_key: string, debug: boolean, access_token?: string) => MTSConfig;
|
13
14
|
export declare const getConfig: () => MTSConfig;
|
package/lib/config.js
CHANGED
@@ -11,9 +11,10 @@ var config = {
|
|
11
11
|
ENV: MTSEnvs.PROD,
|
12
12
|
API_ENDPOINT: "https://myticketsolutionapim.azure-api.net/api",
|
13
13
|
OCP_SUBSCRIPTION_KEY: "",
|
14
|
-
ACCESS_TOKEN: undefined
|
14
|
+
ACCESS_TOKEN: undefined,
|
15
|
+
DEBUG: false
|
15
16
|
};
|
16
|
-
var setConfig = function (env, sub_key, access_token) {
|
17
|
+
var setConfig = function (env, sub_key, debug, access_token) {
|
17
18
|
// First, set the environment
|
18
19
|
config.ENV = env;
|
19
20
|
switch (config.ENV) {
|
@@ -32,6 +33,8 @@ var setConfig = function (env, sub_key, access_token) {
|
|
32
33
|
// Set OCT and access token
|
33
34
|
config.OCP_SUBSCRIPTION_KEY = sub_key;
|
34
35
|
config.ACCESS_TOKEN = access_token;
|
36
|
+
// Set debug
|
37
|
+
config.DEBUG = debug;
|
35
38
|
return config;
|
36
39
|
};
|
37
40
|
exports.setConfig = setConfig;
|
package/lib/index.d.ts
CHANGED
@@ -1,140 +1,15 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
export
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
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;
|
29
|
-
getCartStatus(): Booking.CartStatus;
|
30
|
-
getCart(): Cart | undefined;
|
31
|
-
private fetchAndSetCart;
|
32
|
-
private createCartTimer;
|
33
|
-
getCartExpirationTimeInMs(): Promise<number>;
|
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[]>;
|
57
|
-
createTourCart(tourCart: TourCart): Promise<Cart>;
|
58
|
-
fetchCart(cartId: number): Promise<Cart>;
|
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>;
|
79
|
-
getBusMatrix(params: {
|
80
|
-
tripId: number;
|
81
|
-
departureStopId: number;
|
82
|
-
destinationStopId: number;
|
83
|
-
}): Promise<any>;
|
84
|
-
getSeatsStatus(params: {
|
85
|
-
tripId: number;
|
86
|
-
departureStopId: number;
|
87
|
-
destinationStopId: number;
|
88
|
-
}): Promise<any>;
|
89
|
-
movePassengers(params: {
|
90
|
-
tripId: number;
|
91
|
-
seatsIds: number[];
|
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[]>;
|
123
|
-
getPassengersDetails(): Promise<any>;
|
124
|
-
updatePassengersDetails(passengersDetails: Details): Promise<any>;
|
125
|
-
}
|
126
|
-
export declare namespace Booking {
|
127
|
-
enum Currencies {
|
128
|
-
EUR = "EUR",
|
129
|
-
USD = "USD",
|
130
|
-
CHF = "CHF"
|
131
|
-
}
|
132
|
-
enum CartStatus {
|
133
|
-
EMPTY = "EMPTY",
|
134
|
-
CREATION = "CREATION",
|
135
|
-
PASSENGERS = "PASSENGERS",
|
136
|
-
SEATS = "SEATS",
|
137
|
-
EXTRAS = "EXTRAS",
|
138
|
-
PAYMENT = "PAYMENT"
|
139
|
-
}
|
140
|
-
}
|
1
|
+
export { JourneyBooking } from "./booking/journeyBooking";
|
2
|
+
export { ServiceBooking } from "./booking/serviceBooking";
|
3
|
+
export { SubscriptionBooking } from "./booking/subscriptionBooking";
|
4
|
+
export { Person, PassengersDetails, DEFAULT_PERSON } from "./types/common/Person";
|
5
|
+
export { TariffMatrix, TariffSummary, TariffType, TermsType } from "./types/common/Tariffs";
|
6
|
+
export { JourneyCart, JourneyBookingType, CreateJourneyCartRequest, JourneyBookingInfo } from "./types/journeys/JourneyCart";
|
7
|
+
export { JourneyInfo } from "./types/journeys/JourneyInfo";
|
8
|
+
export { JourneySearchRequest, JourneySearchResult, DEFAULT_JOURNEY_SEARCH } from "./types/journeys/JourneySearch";
|
9
|
+
export { Stop } from "./types/journeys/Stop";
|
10
|
+
export { Trip } from "./types/journeys/Trip";
|
11
|
+
export { Line } from "./types/services/Line";
|
12
|
+
export { Service, ServiceTrip } from "./types/services/Service";
|
13
|
+
export { ServiceCart, ServiceBookingType, CreateServiceCartRequest } from "./types/services/ServiceCart";
|
14
|
+
export { ServiceInfo } from "./types/services/ServiceInfo";
|
15
|
+
export { Subscription } from "./types/subscriptions/Subscrptions";
|