mts-booking-library 1.3.10 → 1.3.12
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.
- package/lib/booking/booking.d.ts +3 -2
- package/lib/booking/journeyBooking.d.ts +1 -1
- package/lib/booking/serviceBooking.d.ts +1 -1
- package/lib/booking/subscriptionBooking.d.ts +1 -1
- package/lib/booking/tplBooking.d.ts +1 -1
- package/lib/index.d.ts +2 -0
- package/lib/index.js +7 -1
- package/lib/mtsStorage.d.ts +3 -3
- package/lib/types/common/Cart.d.ts +70 -35
- package/lib/types/common/Cart.js +8 -0
- package/lib/types/services/ServiceInfo.d.ts +2 -2
- package/lib/utils/apiCall.js +22 -6
- package/lib/utils/processBookingSteps.d.ts +2 -1
- package/lib/utils/processBookingSteps.js +1 -7
- package/lib/utils/utils.d.ts +7 -0
- package/lib/utils/utils.js +11 -1
- package/package.json +5 -5
package/lib/booking/booking.d.ts
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
import { MTSConfig, MTSEnvs } from "../config";
|
2
2
|
import { ErrorResponse } from "../types/ErrorResponse";
|
3
|
+
import { processedStepsToStatus } from "../types/common/Cart";
|
3
4
|
import { GetPaymentInformationFromGatewayResponse, GetSellerGatewaysResponse, PaymentMethods, IssueTicketsResponse } from "../types/common/Payment";
|
4
5
|
import { GetBuyerPassengersDetailsResponse, Person } from "../types/common/Person";
|
5
6
|
import { AddReductionRequest } from "../types/common/Reduction";
|
@@ -18,7 +19,7 @@ export declare abstract class Booking {
|
|
18
19
|
* - The second tells whether the section is completed. <br/>
|
19
20
|
* - The third tells whether the section is required. <br/>
|
20
21
|
*/
|
21
|
-
bookingStepsToStatus:
|
22
|
+
bookingStepsToStatus: processedStepsToStatus;
|
22
23
|
cartId: number | undefined;
|
23
24
|
bookingDueDate: Date | undefined;
|
24
25
|
/**
|
@@ -48,7 +49,7 @@ export declare abstract class Booking {
|
|
48
49
|
callGetApi(url: string): Promise<ErrorResponse | any>;
|
49
50
|
callPostApi(url: string, body: any): Promise<any>;
|
50
51
|
callDeleteApi(url: string): Promise<ErrorResponse | any>;
|
51
|
-
getBookingStepsToStatus():
|
52
|
+
getBookingStepsToStatus(): processedStepsToStatus;
|
52
53
|
changeCurrency(currency: Booking.Currencies): void;
|
53
54
|
changeLanguage(language: string): void;
|
54
55
|
/**
|
@@ -41,7 +41,7 @@ export declare class JourneyBooking extends Booking {
|
|
41
41
|
resetState: () => void;
|
42
42
|
}>>) => void;
|
43
43
|
clearStorage: () => void;
|
44
|
-
rehydrate: () => void |
|
44
|
+
rehydrate: () => Promise<void> | void;
|
45
45
|
hasHydrated: () => boolean;
|
46
46
|
onHydrate: (fn: (state: {
|
47
47
|
cartId: number | undefined;
|
@@ -38,7 +38,7 @@ export declare class ServiceBooking extends Booking {
|
|
38
38
|
resetState: () => void;
|
39
39
|
}>>) => void;
|
40
40
|
clearStorage: () => void;
|
41
|
-
rehydrate: () => void |
|
41
|
+
rehydrate: () => Promise<void> | void;
|
42
42
|
hasHydrated: () => boolean;
|
43
43
|
onHydrate: (fn: (state: {
|
44
44
|
cartId: number | undefined;
|
@@ -39,7 +39,7 @@ export declare class SubscriptionBooking extends Booking {
|
|
39
39
|
resetState: () => void;
|
40
40
|
}>>) => void;
|
41
41
|
clearStorage: () => void;
|
42
|
-
rehydrate: () => void |
|
42
|
+
rehydrate: () => Promise<void> | void;
|
43
43
|
hasHydrated: () => boolean;
|
44
44
|
onHydrate: (fn: (state: {
|
45
45
|
cartId: number | undefined;
|
@@ -41,7 +41,7 @@ export declare class TplBooking extends Booking {
|
|
41
41
|
resetState: () => void;
|
42
42
|
}>>) => void;
|
43
43
|
clearStorage: () => void;
|
44
|
-
rehydrate: () => void |
|
44
|
+
rehydrate: () => Promise<void> | void;
|
45
45
|
hasHydrated: () => boolean;
|
46
46
|
onHydrate: (fn: (state: {
|
47
47
|
cartId: number | undefined;
|
package/lib/index.d.ts
CHANGED
@@ -3,12 +3,14 @@ export { JourneyBooking } from "./booking/journeyBooking";
|
|
3
3
|
export { ServiceBooking } from "./booking/serviceBooking";
|
4
4
|
export { SubscriptionBooking } from "./booking/subscriptionBooking";
|
5
5
|
export { TplBooking } from "./booking/tplBooking";
|
6
|
+
export { useMtsBookingState } from "./mtsStorage";
|
6
7
|
export { Person, DEFAULT_PERSON, initializePerson } from "./types/common/Person";
|
7
8
|
export { GetBuyerPassengersDetailsResponse, GetPassenger, BuyerDataStatus } from "./types/common/Person";
|
8
9
|
export { EditPassengerRequestType, EditPassengersDetailsRequest } from "./types/common/Person";
|
9
10
|
export { Tariff, TariffsMatrix, TariffSummary, TariffType, TermsType, PassengerTariff, ExtraTariff } from "./types/common/Tariffs";
|
10
11
|
export { Reduction, AddReductionRequest } from "./types/common/Reduction";
|
11
12
|
export { Gateway, GetSellerGatewaysResponse, GetPaymentInformationFromGatewayResponse, IssueTicketsResponse, GatewayTypes, PaymentMethods } from "./types/common/Payment";
|
13
|
+
export { ReductionType } from "./types/common/Reduction";
|
12
14
|
export { ErrorResponse, objectIsMTSErrorResponse } from "./types/ErrorResponse";
|
13
15
|
export { BusLayoutCell, BusMatrix, BusCellTypes, SeatStatus } from "./types/journeys/BusMatrix";
|
14
16
|
export { JourneyCart, JourneyBookingType, CreateJourneyCartRequest, TripBookingInfo, DEFAULT_CREATE_JOURNEY_CART } from "./types/journeys/JourneyCart";
|
package/lib/index.js
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.DEFAULT_JOURNEY_SEARCH = exports.DEFAULT_CREATE_JOURNEY_CART = exports.SeatStatus = exports.BusCellTypes = exports.objectIsMTSErrorResponse = exports.PaymentMethods = exports.GatewayTypes = exports.BuyerDataStatus = exports.initializePerson = exports.DEFAULT_PERSON = exports.TplBooking = exports.SubscriptionBooking = exports.ServiceBooking = exports.JourneyBooking = exports.Booking = void 0;
|
3
|
+
exports.DEFAULT_JOURNEY_SEARCH = exports.DEFAULT_CREATE_JOURNEY_CART = exports.SeatStatus = exports.BusCellTypes = exports.objectIsMTSErrorResponse = exports.ReductionType = exports.PaymentMethods = exports.GatewayTypes = exports.BuyerDataStatus = exports.initializePerson = exports.DEFAULT_PERSON = exports.useMtsBookingState = exports.TplBooking = exports.SubscriptionBooking = exports.ServiceBooking = exports.JourneyBooking = exports.Booking = void 0;
|
4
4
|
//#region Export Booking classes
|
5
5
|
var booking_1 = require("./booking/booking");
|
6
6
|
Object.defineProperty(exports, "Booking", { enumerable: true, get: function () { return booking_1.Booking; } });
|
@@ -13,6 +13,10 @@ Object.defineProperty(exports, "SubscriptionBooking", { enumerable: true, get: f
|
|
13
13
|
var tplBooking_1 = require("./booking/tplBooking");
|
14
14
|
Object.defineProperty(exports, "TplBooking", { enumerable: true, get: function () { return tplBooking_1.TplBooking; } });
|
15
15
|
//#endregion
|
16
|
+
//#region Export Zustand states
|
17
|
+
var mtsStorage_1 = require("./mtsStorage");
|
18
|
+
Object.defineProperty(exports, "useMtsBookingState", { enumerable: true, get: function () { return mtsStorage_1.useMtsBookingState; } });
|
19
|
+
//#endregion
|
16
20
|
//#region Export common types
|
17
21
|
// @note: Cart is not exported because it is extended by other types
|
18
22
|
var Person_1 = require("./types/common/Person");
|
@@ -23,6 +27,8 @@ Object.defineProperty(exports, "BuyerDataStatus", { enumerable: true, get: funct
|
|
23
27
|
var Payment_1 = require("./types/common/Payment");
|
24
28
|
Object.defineProperty(exports, "GatewayTypes", { enumerable: true, get: function () { return Payment_1.GatewayTypes; } });
|
25
29
|
Object.defineProperty(exports, "PaymentMethods", { enumerable: true, get: function () { return Payment_1.PaymentMethods; } });
|
30
|
+
var Reduction_1 = require("./types/common/Reduction");
|
31
|
+
Object.defineProperty(exports, "ReductionType", { enumerable: true, get: function () { return Reduction_1.ReductionType; } });
|
26
32
|
var ErrorResponse_1 = require("./types/ErrorResponse");
|
27
33
|
Object.defineProperty(exports, "objectIsMTSErrorResponse", { enumerable: true, get: function () { return ErrorResponse_1.objectIsMTSErrorResponse; } });
|
28
34
|
//#endregion
|
package/lib/mtsStorage.d.ts
CHANGED
@@ -9,7 +9,7 @@ export declare const useMtsBookingLocalState: import("zustand").UseBoundStore<Om
|
|
9
9
|
persist: {
|
10
10
|
setOptions: (options: Partial<import("zustand/middleware").PersistOptions<MtsBookingState & MtsBookingAction, MtsBookingState & MtsBookingAction>>) => void;
|
11
11
|
clearStorage: () => void;
|
12
|
-
rehydrate: () => void |
|
12
|
+
rehydrate: () => Promise<void> | void;
|
13
13
|
hasHydrated: () => boolean;
|
14
14
|
onHydrate: (fn: (state: MtsBookingState & MtsBookingAction) => void) => () => void;
|
15
15
|
onFinishHydration: (fn: (state: MtsBookingState & MtsBookingAction) => void) => () => void;
|
@@ -23,7 +23,7 @@ export declare const useMtsBookingState: () => import("zustand").UseBoundStore<O
|
|
23
23
|
persist: {
|
24
24
|
setOptions: (options: Partial<import("zustand/middleware").PersistOptions<MtsBookingState & MtsBookingAction, MtsBookingState & MtsBookingAction>>) => void;
|
25
25
|
clearStorage: () => void;
|
26
|
-
rehydrate: () => void |
|
26
|
+
rehydrate: () => Promise<void> | void;
|
27
27
|
hasHydrated: () => boolean;
|
28
28
|
onHydrate: (fn: (state: MtsBookingState & MtsBookingAction) => void) => () => void;
|
29
29
|
onFinishHydration: (fn: (state: MtsBookingState & MtsBookingAction) => void) => () => void;
|
@@ -34,7 +34,7 @@ export declare const useTestState: () => import("zustand").UseBoundStore<Omit<im
|
|
34
34
|
persist: {
|
35
35
|
setOptions: (options: Partial<import("zustand/middleware").PersistOptions<MtsBookingState & MtsBookingAction, MtsBookingState & MtsBookingAction>>) => void;
|
36
36
|
clearStorage: () => void;
|
37
|
-
rehydrate: () => void |
|
37
|
+
rehydrate: () => Promise<void> | void;
|
38
38
|
hasHydrated: () => boolean;
|
39
39
|
onHydrate: (fn: (state: MtsBookingState & MtsBookingAction) => void) => () => void;
|
40
40
|
onFinishHydration: (fn: (state: MtsBookingState & MtsBookingAction) => void) => () => void;
|
@@ -1,67 +1,102 @@
|
|
1
1
|
import { Booking } from "../../booking/booking";
|
2
2
|
import { Reduction } from "./Reduction";
|
3
3
|
import { Extra } from "./Extra";
|
4
|
+
export declare enum SellingMethod {
|
5
|
+
LINKAVEL = "LINKAVEL",
|
6
|
+
BACKOFFICE = "BACKOFFICE",
|
7
|
+
RESELLER = "RESELLER",
|
8
|
+
MTSAPP = "MTSAPP"
|
9
|
+
}
|
4
10
|
/**
|
5
11
|
* @description Cart is the object returned by the API when a cart is created.
|
6
12
|
* Note that depending on the type of booking, this type will be extended with different fields:
|
7
13
|
* - TourCart: {@link ServiceCart}
|
8
14
|
* - JourneyCart: {@link JourneyCart}
|
9
15
|
* - SubscriptionCart: {@link SubscriptionCart}
|
10
|
-
* @property {number} id The id of the cart
|
11
|
-
* @property {string} cartCode The code of the cart
|
12
|
-
* @property {boolean} hasIssuedTickets - A boolean telling whether the cart has issued tickets. Note that if this is the case,
|
13
|
-
* the cart will be null because it is not possible to add tickets to an issued cart. Thus, all data should be reset.
|
14
|
-
* @property {number} sellerId The id of the seller of the tickets in the cart
|
15
|
-
* @property {string} sellerPrivacyUrl The url redirecting to the privacy policy of the seller
|
16
|
-
* @property {string} sellerTermsUrl The url redirecting to the terms and conditions of the seller
|
17
|
-
* @property {Map<string, boolean[]>} stepsToStatus This data structure describes the steps of the booking process.
|
18
|
-
* The keys of this dictionary represent the booking steps. See ... for the list of possible steps. If the
|
19
|
-
* key is present, then the booking step shall be displayed. The value is a list of 3 booleans:
|
20
|
-
* - The first tells whether it is possible to go to that section. If not, other sections must be completed first.
|
21
|
-
* - The second tells whether the section is completed.
|
22
|
-
* - The third tells whether the section is required.
|
23
|
-
* @property {Booking.Currencies} currency The currency of the cart. See {@link Booking.Currencies}
|
24
|
-
* @property {number} bookingDueDateRemainingSeconds The number of seconds remaining before the cart expires. This should be equivalent `bookingDueDate`
|
25
|
-
* @property {string} bookingDueDate The date and time when the cart expires
|
26
|
-
* @property {Reduction[]} reductions The list of reductions applied to the cart
|
27
|
-
* @property {Extra[]} extras The list of extras services of the cart
|
28
|
-
* @property {string} sellingMethod The selling method of the cart (LinkAvel, Backoffice)
|
29
|
-
* @property {number} totalValue The total value of the cart, meaning the sum of the nominal prices of all tickets. It is expressed in the currency of the cart.
|
30
|
-
* @property {number} totalResellerFee The total reseller fee of the cart, meaning the sum of the reseller fees of all tickets. It is expressed in the currency of the cart.
|
31
|
-
* @property {number} totalCreditFromChange The total credit from change of the cart. This is non zero only during the change process, and represents
|
32
|
-
* the credit that the user has from the previous cart. It is expressed in the currency of the cart.
|
33
|
-
* @property {number} totalAmountToPay The total amount to pay of the cart, meaning the amount that the user has to pay to complete the booking. This is
|
34
|
-
* what is displayed in the payment page. It is expressed in the currency of the cart.
|
35
16
|
*/
|
36
17
|
export type Cart = {
|
18
|
+
/** The id of the cart */
|
37
19
|
id: number;
|
20
|
+
/** The id of the seller of the tickets in the cart */
|
38
21
|
sellerId: number;
|
22
|
+
/** The url redirecting to the privacy policy of the seller */
|
39
23
|
sellerPrivacyUrl: string;
|
24
|
+
/** The url redirecting to the terms and conditions of the seller */
|
40
25
|
sellerTermsUrl: string;
|
26
|
+
/** The code of the cart */
|
41
27
|
cartCode: string;
|
28
|
+
/**
|
29
|
+
* A boolean telling whether the cart has issued tickets.
|
30
|
+
* Note that if this is the case, the cart will be null because it is not
|
31
|
+
* possible to add tickets to an issued cart. Thus, all data should be reset.
|
32
|
+
*/
|
42
33
|
hasIssuedTickets: boolean;
|
43
|
-
|
34
|
+
/**
|
35
|
+
* This data structure describes the steps of the booking process.
|
36
|
+
* The keys of this dictionary represent the booking steps. See {@link Booking.BookingSteps}
|
37
|
+
* for the list of possible steps.
|
38
|
+
* If the key is present, then the booking step shall be displayed. The value
|
39
|
+
* is a list of 3 booleans:
|
40
|
+
* - The first tells whether it is possible to go to that section. If not, other
|
41
|
+
* sections must be completed first.
|
42
|
+
* - The second tells whether the section is completed.
|
43
|
+
* - The third tells whether the section is required.
|
44
|
+
*/
|
45
|
+
stepsToStatus: Record<Booking.BookingSteps, [boolean, boolean, boolean]>;
|
46
|
+
/** The currency of the cart. See {@link Booking.Currencies} */
|
44
47
|
currency: Booking.Currencies;
|
48
|
+
/** The date and time when the cart expires */
|
45
49
|
bookingDueDate: string;
|
50
|
+
/**
|
51
|
+
* The number of seconds remaining before the cart expires. This should be equivalent
|
52
|
+
* `bookingDueDate`
|
53
|
+
*/
|
46
54
|
bookingDueDateRemainingSeconds: number;
|
55
|
+
/** The list of reductions applied to the cart */
|
47
56
|
reductions: Reduction[];
|
57
|
+
/** The list of extras services of the cart */
|
48
58
|
extras: Extra[];
|
49
|
-
|
59
|
+
/** The selling method of the cart (LinkAvel, Backoffice) */
|
60
|
+
sellingMethod: SellingMethod;
|
61
|
+
/**
|
62
|
+
* The total value of the cart, meaning the sum of the nominal prices of all tickets.
|
63
|
+
* It is expressed in the currency of the cart.
|
64
|
+
*/
|
50
65
|
totalValue: number;
|
66
|
+
/**
|
67
|
+
* The total reseller fee of the cart, meaning the sum of the reseller fees of
|
68
|
+
* all tickets. It is expressed in the currency of the cart.
|
69
|
+
*/
|
51
70
|
totalResellerFee?: number;
|
71
|
+
/**
|
72
|
+
* The total credit from change of the cart. This is non zero only during the
|
73
|
+
* change process, and represents the credit that the user has from the previous
|
74
|
+
* cart. It is expressed in the currency of the cart.
|
75
|
+
*/
|
52
76
|
totalCreditFromChange: number;
|
77
|
+
/**
|
78
|
+
* The total amount to pay of the cart, meaning the amount that the user has to
|
79
|
+
* pay to complete the booking. This is what is displayed in the payment page.
|
80
|
+
* It is expressed in the currency of the cart.
|
81
|
+
*/
|
53
82
|
totalAmountToPay: number;
|
54
83
|
};
|
84
|
+
/** The type that {@link Cart.stepsToStatus} assumes once parsed to a map */
|
85
|
+
export type processedStepsToStatus = Map<Booking.BookingSteps, [boolean, boolean, boolean]>;
|
55
86
|
/**
|
56
87
|
* Base response type for the booking process. All APIs that update the cart, share this.
|
57
|
-
*
|
58
|
-
* @property {Map<string, boolean[]>} stepsToStatus This data structure describes the steps of the booking process.
|
59
|
-
* The keys of this dictionary represent the booking steps. See ... for the list of possible steps. If the
|
60
|
-
* key is present, then the booking step shall be displayed. The value is a list of 3 booleans:
|
61
|
-
* - The first tells whether it is possible to go to that section. If not, other sections must be completed first.
|
62
|
-
* - The second tells whether the section is completed.
|
63
|
-
* - The third tells whether the section is required.
|
64
88
|
*/
|
65
89
|
export type BaseBookingProcessResponse = {
|
66
|
-
|
90
|
+
/**
|
91
|
+
* This data structure describes the steps of the booking process.
|
92
|
+
* The keys of this dictionary represent the booking steps. See {@link Booking.BookingSteps}
|
93
|
+
* for the list of possible steps.
|
94
|
+
* If the key is present, then the booking step shall be displayed. The value
|
95
|
+
* is a list of 3 booleans:
|
96
|
+
* - The first tells whether it is possible to go to that section. If not, other
|
97
|
+
* sections must be completed first.
|
98
|
+
* - The second tells whether the section is completed.
|
99
|
+
* - The third tells whether the section is required.
|
100
|
+
*/
|
101
|
+
stepsToStatus: Record<Booking.BookingSteps, [boolean, boolean, boolean]>;
|
67
102
|
};
|
package/lib/types/common/Cart.js
CHANGED
@@ -1,2 +1,10 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.SellingMethod = void 0;
|
4
|
+
var SellingMethod;
|
5
|
+
(function (SellingMethod) {
|
6
|
+
SellingMethod["LINKAVEL"] = "LINKAVEL";
|
7
|
+
SellingMethod["BACKOFFICE"] = "BACKOFFICE";
|
8
|
+
SellingMethod["RESELLER"] = "RESELLER";
|
9
|
+
SellingMethod["MTSAPP"] = "MTSAPP";
|
10
|
+
})(SellingMethod || (exports.SellingMethod = SellingMethod = {}));
|
@@ -2,14 +2,14 @@
|
|
2
2
|
* @description Represents information about a service.
|
3
3
|
*
|
4
4
|
* @property {string} sellerName - The name of the seller offering the service.
|
5
|
-
* @property {
|
5
|
+
* @property {number} sellerId - The id of the seller offering the service.
|
6
6
|
* @property {string} minimumTotalPrice - The minimum total price for booking the service, meaning the price if all passenger choose the cheapest tariff.
|
7
7
|
* @property {string} bookingProcessMessage - Optional message to be displayed to the user when booking this service.
|
8
8
|
* @property {boolean} isBookable - Indicates whether the service is bookable (true) or not (false).
|
9
9
|
*/
|
10
10
|
export type ServiceInfo = {
|
11
11
|
sellerName: string;
|
12
|
-
sellerId:
|
12
|
+
sellerId: number;
|
13
13
|
minimumTotalPrice: string;
|
14
14
|
bookingProcessMessage: string;
|
15
15
|
isBookable: boolean;
|
package/lib/utils/apiCall.js
CHANGED
@@ -57,6 +57,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
57
57
|
exports.makeDelete = exports.makePost = exports.makeGet = void 0;
|
58
58
|
var axios_1 = require("axios");
|
59
59
|
var config_1 = require("../config");
|
60
|
+
var utils_1 = require("./utils");
|
60
61
|
var removeNullError = function (resData) {
|
61
62
|
var filteredResponse = {};
|
62
63
|
Object.keys(resData)
|
@@ -68,12 +69,17 @@ var removeNullError = function (resData) {
|
|
68
69
|
return filteredResponse;
|
69
70
|
};
|
70
71
|
var makeGet = function (url) { return __awaiter(void 0, void 0, void 0, function () {
|
71
|
-
var debug;
|
72
|
+
var debug, subKey, errorReport;
|
72
73
|
return __generator(this, function (_a) {
|
73
74
|
debug = (0, config_1.getConfig)().DEBUG;
|
74
75
|
if (debug) {
|
75
76
|
console.log("GET_RequestData", url);
|
76
77
|
}
|
78
|
+
subKey = (0, config_1.getConfig)().OCP_SUBSCRIPTION_KEY;
|
79
|
+
if ((0, utils_1.isNullOrWhiteSpace)(subKey)) {
|
80
|
+
errorReport = "Sub Key: ".concat(subKey, ", url: ").concat(url, ", access token: ").concat((0, config_1.getConfig)().ACCESS_TOKEN);
|
81
|
+
throw new Error("MTS Library Error! makeGet: missing OCP SUBSCRIPTION KEY! ".concat(errorReport));
|
82
|
+
}
|
77
83
|
return [2 /*return*/, new Promise(function (resolve, reject) { return __awaiter(void 0, void 0, void 0, function () {
|
78
84
|
var response, filteredResponse, error_1, resError, resError;
|
79
85
|
var _a, _b, _c, _d, _e, _f, _g;
|
@@ -82,7 +88,7 @@ var makeGet = function (url) { return __awaiter(void 0, void 0, void 0, function
|
|
82
88
|
case 0:
|
83
89
|
_h.trys.push([0, 2, , 3]);
|
84
90
|
return [4 /*yield*/, axios_1.default.get(url, {
|
85
|
-
headers: __assign({ "Content-Type": "application/json", "Ocp-Apim-Subscription-Key":
|
91
|
+
headers: __assign({ "Content-Type": "application/json", "Ocp-Apim-Subscription-Key": subKey }, ((0, config_1.getConfig)().ACCESS_TOKEN && { Authorization: "Bearer ".concat((0, config_1.getConfig)().ACCESS_TOKEN) }))
|
86
92
|
})];
|
87
93
|
case 1:
|
88
94
|
response = _h.sent();
|
@@ -118,12 +124,17 @@ var makeGet = function (url) { return __awaiter(void 0, void 0, void 0, function
|
|
118
124
|
}); };
|
119
125
|
exports.makeGet = makeGet;
|
120
126
|
var makePost = function (url, data) { return __awaiter(void 0, void 0, void 0, function () {
|
121
|
-
var debug;
|
127
|
+
var debug, subKey, errorReport;
|
122
128
|
return __generator(this, function (_a) {
|
123
129
|
debug = (0, config_1.getConfig)().DEBUG;
|
124
130
|
if (debug) {
|
125
131
|
console.log("POST_RequestData", url, data);
|
126
132
|
}
|
133
|
+
subKey = (0, config_1.getConfig)().OCP_SUBSCRIPTION_KEY;
|
134
|
+
if ((0, utils_1.isNullOrWhiteSpace)(subKey)) {
|
135
|
+
errorReport = "Sub Key: ".concat(subKey, ", url: ").concat(url, ", access token: ").concat((0, config_1.getConfig)().ACCESS_TOKEN);
|
136
|
+
throw new Error("MTS Library Error! makePost: missing OCP SUBSCRIPTION KEY! ".concat(errorReport));
|
137
|
+
}
|
127
138
|
return [2 /*return*/, new Promise(function (resolve, reject) { return __awaiter(void 0, void 0, void 0, function () {
|
128
139
|
var response, filteredResponse, error_2, resError;
|
129
140
|
var _a, _b, _c, _d, _e, _f, _g;
|
@@ -132,7 +143,7 @@ var makePost = function (url, data) { return __awaiter(void 0, void 0, void 0, f
|
|
132
143
|
case 0:
|
133
144
|
_h.trys.push([0, 2, , 3]);
|
134
145
|
return [4 /*yield*/, axios_1.default.post(url, data, {
|
135
|
-
headers: __assign({ "Content-Type": "application/json", "Ocp-Apim-Subscription-Key":
|
146
|
+
headers: __assign({ "Content-Type": "application/json", "Ocp-Apim-Subscription-Key": subKey }, ((0, config_1.getConfig)().ACCESS_TOKEN && { Authorization: "Bearer ".concat((0, config_1.getConfig)().ACCESS_TOKEN) }))
|
136
147
|
})];
|
137
148
|
case 1:
|
138
149
|
response = _h.sent();
|
@@ -168,12 +179,17 @@ var makePost = function (url, data) { return __awaiter(void 0, void 0, void 0, f
|
|
168
179
|
}); };
|
169
180
|
exports.makePost = makePost;
|
170
181
|
var makeDelete = function (url) { return __awaiter(void 0, void 0, void 0, function () {
|
171
|
-
var debug;
|
182
|
+
var debug, subKey, errorReport;
|
172
183
|
return __generator(this, function (_a) {
|
173
184
|
debug = (0, config_1.getConfig)().DEBUG;
|
174
185
|
if (debug) {
|
175
186
|
console.log("DELETE_RequestData", url);
|
176
187
|
}
|
188
|
+
subKey = (0, config_1.getConfig)().OCP_SUBSCRIPTION_KEY;
|
189
|
+
if ((0, utils_1.isNullOrWhiteSpace)(subKey)) {
|
190
|
+
errorReport = "Sub Key: ".concat(subKey, ", url: ").concat(url, ", access token: ").concat((0, config_1.getConfig)().ACCESS_TOKEN);
|
191
|
+
throw new Error("MTS Library Error! makeDelete: missing OCP SUBSCRIPTION KEY! ".concat(errorReport));
|
192
|
+
}
|
177
193
|
return [2 /*return*/, new Promise(function (resolve, reject) { return __awaiter(void 0, void 0, void 0, function () {
|
178
194
|
var response, filteredResponse, error_3, resError;
|
179
195
|
var _a, _b, _c, _d, _e, _f, _g;
|
@@ -182,7 +198,7 @@ var makeDelete = function (url) { return __awaiter(void 0, void 0, void 0, funct
|
|
182
198
|
case 0:
|
183
199
|
_h.trys.push([0, 2, , 3]);
|
184
200
|
return [4 /*yield*/, axios_1.default.delete(url, {
|
185
|
-
headers: __assign({ "Content-Type": "application/json", "Ocp-Apim-Subscription-Key":
|
201
|
+
headers: __assign({ "Content-Type": "application/json", "Ocp-Apim-Subscription-Key": subKey }, ((0, config_1.getConfig)().ACCESS_TOKEN && { Authorization: "Bearer ".concat((0, config_1.getConfig)().ACCESS_TOKEN) }))
|
186
202
|
})];
|
187
203
|
case 1:
|
188
204
|
response = _h.sent();
|
@@ -1,7 +1,8 @@
|
|
1
|
+
import { Cart, processedStepsToStatus } from "../types/common/Cart";
|
1
2
|
/**
|
2
3
|
* This function process the stepsToStatus object returned by the BE in several APIs and returns the processed Map.
|
3
4
|
* This is necessary because Typescript does not treat the jsonized map as an actual Map making it impossible to use.
|
4
5
|
* @param stepsToStatus the stepsToStatus object returned by the BE
|
5
6
|
* @returns The processed Map
|
6
7
|
*/
|
7
|
-
export declare const processBookingSteps: (stepsToStatus:
|
8
|
+
export declare const processBookingSteps: (stepsToStatus: Cart["stepsToStatus"]) => processedStepsToStatus;
|
@@ -9,13 +9,7 @@ exports.processBookingSteps = void 0;
|
|
9
9
|
*/
|
10
10
|
var processBookingSteps = function (stepsToStatus) {
|
11
11
|
try {
|
12
|
-
return new Map(Object.entries(stepsToStatus)
|
13
|
-
var bookingStep = _a[0], values = _a[1];
|
14
|
-
return [
|
15
|
-
bookingStep,
|
16
|
-
values
|
17
|
-
];
|
18
|
-
}));
|
12
|
+
return new Map(Object.entries(stepsToStatus));
|
19
13
|
}
|
20
14
|
catch (error) {
|
21
15
|
throw new Error("Error while processing booking steps");
|
package/lib/utils/utils.d.ts
CHANGED
@@ -12,3 +12,10 @@ export declare const getISOStringWithoutGMT: (date: Date | string | null | undef
|
|
12
12
|
* @returns True if the value is null or undefined, false otherwise
|
13
13
|
*/
|
14
14
|
export declare const isNullOrUndefined: (value: any) => boolean;
|
15
|
+
/**
|
16
|
+
* This method check whether the input string is null, undefined, or made only by white spaces.
|
17
|
+
* It is the equivalent of C# method string.IsNullOrWhiteSpace used in the backend.
|
18
|
+
* @param {string | null | undefined} input the string to be tested
|
19
|
+
* @returns {boolean} true if the string is null, undefined, or made only by white spaces, false otherwise
|
20
|
+
*/
|
21
|
+
export declare const isNullOrWhiteSpace: (input: string | null | undefined) => boolean;
|
package/lib/utils/utils.js
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.isNullOrUndefined = exports.getISOStringWithoutGMT = void 0;
|
3
|
+
exports.isNullOrWhiteSpace = exports.isNullOrUndefined = exports.getISOStringWithoutGMT = void 0;
|
4
4
|
/**
|
5
5
|
* This method return the ISO string of the date without GMT. An ISO string looks like this: YYYY-MM-DDThh:mm:ss.mmmZ
|
6
6
|
* @param {Date | string} date the date to convert
|
@@ -24,3 +24,13 @@ exports.getISOStringWithoutGMT = getISOStringWithoutGMT;
|
|
24
24
|
*/
|
25
25
|
var isNullOrUndefined = function (value) { return value === null || value === undefined; };
|
26
26
|
exports.isNullOrUndefined = isNullOrUndefined;
|
27
|
+
/**
|
28
|
+
* This method check whether the input string is null, undefined, or made only by white spaces.
|
29
|
+
* It is the equivalent of C# method string.IsNullOrWhiteSpace used in the backend.
|
30
|
+
* @param {string | null | undefined} input the string to be tested
|
31
|
+
* @returns {boolean} true if the string is null, undefined, or made only by white spaces, false otherwise
|
32
|
+
*/
|
33
|
+
var isNullOrWhiteSpace = function (input) {
|
34
|
+
return input === null || input === undefined || input.trim() === "";
|
35
|
+
};
|
36
|
+
exports.isNullOrWhiteSpace = isNullOrWhiteSpace;
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "mts-booking-library",
|
3
|
-
"version": "1.3.
|
3
|
+
"version": "1.3.12",
|
4
4
|
"description": "Library for using MyTicketSolution Booking API",
|
5
5
|
"main": "lib/index.js",
|
6
6
|
"types": "lib/index.d.ts",
|
@@ -18,9 +18,9 @@
|
|
18
18
|
"devDependencies": {
|
19
19
|
"@types/jest": "^29.5.12",
|
20
20
|
"jest": "^29.7.0",
|
21
|
-
"prettier": "^3.2
|
22
|
-
"ts-jest": "^29.1.
|
23
|
-
"typescript": "^5.
|
21
|
+
"prettier": "^3.3.2",
|
22
|
+
"ts-jest": "^29.1.5",
|
23
|
+
"typescript": "^5.5.2"
|
24
24
|
},
|
25
25
|
"files": [
|
26
26
|
"lib/**/*"
|
@@ -32,7 +32,7 @@
|
|
32
32
|
"author": "Infoservice s.r.l.",
|
33
33
|
"dependencies": {
|
34
34
|
"@react-native-async-storage/async-storage": "^1.23.1",
|
35
|
-
"axios": "^1.
|
35
|
+
"axios": "^1.7.2",
|
36
36
|
"dotenv": "^16.4.5",
|
37
37
|
"node-localstorage": "^3.0.5",
|
38
38
|
"zustand": "^4.5.2"
|