ti2 1.0.35 → 1.0.37
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/cli.js +1 -1
- package/controllers/bookings.js +22 -0
- package/controllers/graphql-schemas/availability.js +61 -0
- package/controllers/graphql-schemas/booking.js +94 -0
- package/controllers/graphql-schemas/product.js +64 -0
- package/controllers/graphql-schemas/rate.js +33 -0
- package/package.json +1 -1
package/cli.js
CHANGED
package/controllers/bookings.js
CHANGED
|
@@ -1,6 +1,21 @@
|
|
|
1
1
|
const assert = require('assert');
|
|
2
2
|
|
|
3
3
|
const { UserAppKey } = require('../models/index');
|
|
4
|
+
const { typeDefs: productTypeDefs, query: productQuery } = require('./graphql-schemas/product');
|
|
5
|
+
const { typeDefs: availTypeDefs, query: availQuery } = require('./graphql-schemas/availability');
|
|
6
|
+
const { typeDefs: bookingTypeDefs, query: bookingQuery } = require('./graphql-schemas/booking');
|
|
7
|
+
const { typeDefs: rateTypeDefs, query: rateQuery } = require('./graphql-schemas/rate');
|
|
8
|
+
|
|
9
|
+
const typeDefsAndQueries = {
|
|
10
|
+
productTypeDefs,
|
|
11
|
+
productQuery,
|
|
12
|
+
availTypeDefs,
|
|
13
|
+
availQuery,
|
|
14
|
+
bookingTypeDefs,
|
|
15
|
+
bookingQuery,
|
|
16
|
+
rateTypeDefs,
|
|
17
|
+
rateQuery,
|
|
18
|
+
};
|
|
4
19
|
|
|
5
20
|
const bookingsSearch = plugins => async (req, res, next) => {
|
|
6
21
|
const {
|
|
@@ -22,6 +37,7 @@ const bookingsSearch = plugins => async (req, res, next) => {
|
|
|
22
37
|
const results = await search({
|
|
23
38
|
token,
|
|
24
39
|
payload: body,
|
|
40
|
+
typeDefsAndQueries,
|
|
25
41
|
});
|
|
26
42
|
return res.json(results);
|
|
27
43
|
} catch (err) {
|
|
@@ -49,6 +65,7 @@ const bookingsCancel = plugins => async (req, res, next) => {
|
|
|
49
65
|
const results = await app.cancelBooking({
|
|
50
66
|
token,
|
|
51
67
|
payload: body,
|
|
68
|
+
typeDefsAndQueries,
|
|
52
69
|
});
|
|
53
70
|
return res.json(results);
|
|
54
71
|
} catch (err) {
|
|
@@ -76,6 +93,7 @@ const $bookingsProductSearch = plugins => async ({
|
|
|
76
93
|
const results = await app.searchProducts({
|
|
77
94
|
token,
|
|
78
95
|
payload,
|
|
96
|
+
typeDefsAndQueries,
|
|
79
97
|
});
|
|
80
98
|
return results;
|
|
81
99
|
};
|
|
@@ -112,6 +130,7 @@ const bookingsAvailabilitySearch = plugins => async (req, res, next) => {
|
|
|
112
130
|
const results = await app.searchAvailability({
|
|
113
131
|
token,
|
|
114
132
|
payload,
|
|
133
|
+
typeDefsAndQueries,
|
|
115
134
|
});
|
|
116
135
|
return res.json(results);
|
|
117
136
|
} catch (err) {
|
|
@@ -139,6 +158,7 @@ const $bookingsAvailabilityCalendar = plugins => async ({
|
|
|
139
158
|
return app.availabilityCalendar({
|
|
140
159
|
token,
|
|
141
160
|
payload,
|
|
161
|
+
typeDefsAndQueries,
|
|
142
162
|
});
|
|
143
163
|
};
|
|
144
164
|
|
|
@@ -175,6 +195,7 @@ const searchQuote = plugins => async (req, res, next) => {
|
|
|
175
195
|
const results = await app.searchQuote({
|
|
176
196
|
token,
|
|
177
197
|
payload,
|
|
198
|
+
typeDefsAndQueries,
|
|
178
199
|
});
|
|
179
200
|
return res.json(results);
|
|
180
201
|
} catch (err) {
|
|
@@ -203,6 +224,7 @@ const createBooking = plugins => async (req, res, next) => {
|
|
|
203
224
|
const results = await app.createBooking({
|
|
204
225
|
token,
|
|
205
226
|
payload,
|
|
227
|
+
typeDefsAndQueries,
|
|
206
228
|
});
|
|
207
229
|
return res.json(results);
|
|
208
230
|
} catch (err) {
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
const typeDefs = `
|
|
2
|
+
input UnitWithQuantity {
|
|
3
|
+
unitId: ID
|
|
4
|
+
quantity: Int
|
|
5
|
+
}
|
|
6
|
+
type Pricing {
|
|
7
|
+
unitId: ID
|
|
8
|
+
original: Int
|
|
9
|
+
retail: Int
|
|
10
|
+
net: Int
|
|
11
|
+
currencyPrecision: Int
|
|
12
|
+
}
|
|
13
|
+
type Offer {
|
|
14
|
+
offerId: ID
|
|
15
|
+
title: String
|
|
16
|
+
description: String
|
|
17
|
+
}
|
|
18
|
+
type Query {
|
|
19
|
+
key(productId: String, optionId: String, currency: String, unitsWithQuantity: [UnitWithQuantity], jwtKey: String): String
|
|
20
|
+
dateTimeStart: String
|
|
21
|
+
dateTimeEnd: String
|
|
22
|
+
allDay: Boolean
|
|
23
|
+
vacancies: Int
|
|
24
|
+
available: Boolean
|
|
25
|
+
pricing: Pricing
|
|
26
|
+
unitPricing: [Pricing]
|
|
27
|
+
offer: Offer
|
|
28
|
+
}
|
|
29
|
+
`;
|
|
30
|
+
|
|
31
|
+
const query = `query getAvailability ($pId: String, $oId: String, $currency: String, $unitsWithQuantity: [UnitWithQuantity], $jwtKey: String) {
|
|
32
|
+
key (productId: $pId, optionId: $oId, currency: $currency, unitsWithQuantity: $unitsWithQuantity, jwtKey: $jwtKey)
|
|
33
|
+
dateTimeStart
|
|
34
|
+
dateTimeEnd
|
|
35
|
+
allDay
|
|
36
|
+
vacancies
|
|
37
|
+
available
|
|
38
|
+
pricing {
|
|
39
|
+
...pricingFields
|
|
40
|
+
}
|
|
41
|
+
unitPricing {
|
|
42
|
+
...pricingFields
|
|
43
|
+
}
|
|
44
|
+
offer {
|
|
45
|
+
offerId
|
|
46
|
+
title
|
|
47
|
+
description
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
fragment pricingFields on Pricing {
|
|
51
|
+
unitId
|
|
52
|
+
original
|
|
53
|
+
retail
|
|
54
|
+
net
|
|
55
|
+
currencyPrecision
|
|
56
|
+
}
|
|
57
|
+
`;
|
|
58
|
+
module.exports = {
|
|
59
|
+
typeDefs,
|
|
60
|
+
query,
|
|
61
|
+
};
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
const typeDefs = `
|
|
2
|
+
type Holder {
|
|
3
|
+
name: String
|
|
4
|
+
surname: String
|
|
5
|
+
fullName: String
|
|
6
|
+
phoneNumber: String
|
|
7
|
+
emailAddress: String
|
|
8
|
+
}
|
|
9
|
+
type UnitItem {
|
|
10
|
+
unitItemId: ID
|
|
11
|
+
unitId: ID
|
|
12
|
+
unitName: String
|
|
13
|
+
}
|
|
14
|
+
type Price {
|
|
15
|
+
original: Int
|
|
16
|
+
retail: Int
|
|
17
|
+
net: Int
|
|
18
|
+
currencyPrecision: Int
|
|
19
|
+
currency: String
|
|
20
|
+
}
|
|
21
|
+
type Query {
|
|
22
|
+
id: ID
|
|
23
|
+
orderId: ID
|
|
24
|
+
bookingId: ID
|
|
25
|
+
supplierBookingId: ID
|
|
26
|
+
status: String
|
|
27
|
+
productId: String
|
|
28
|
+
productName: String
|
|
29
|
+
optionId: String
|
|
30
|
+
optionName: String
|
|
31
|
+
cancellable: Boolean
|
|
32
|
+
editable: Boolean
|
|
33
|
+
unitItems: [UnitItem]
|
|
34
|
+
start: String
|
|
35
|
+
end: String
|
|
36
|
+
allDay: Boolean
|
|
37
|
+
bookingDate: String
|
|
38
|
+
holder: Holder
|
|
39
|
+
notes: String
|
|
40
|
+
price: Price
|
|
41
|
+
cancelPolicy: String
|
|
42
|
+
resellerReference: String
|
|
43
|
+
publicUrl: String
|
|
44
|
+
privateUrl: String
|
|
45
|
+
}
|
|
46
|
+
`;
|
|
47
|
+
|
|
48
|
+
const query = `{
|
|
49
|
+
id
|
|
50
|
+
orderId
|
|
51
|
+
bookingId
|
|
52
|
+
supplierBookingId
|
|
53
|
+
status
|
|
54
|
+
productId
|
|
55
|
+
productName
|
|
56
|
+
optionId
|
|
57
|
+
optionName
|
|
58
|
+
cancellable
|
|
59
|
+
editable
|
|
60
|
+
unitItems {
|
|
61
|
+
unitItemId
|
|
62
|
+
unitId
|
|
63
|
+
unitName
|
|
64
|
+
}
|
|
65
|
+
start
|
|
66
|
+
end
|
|
67
|
+
allDay
|
|
68
|
+
bookingDate
|
|
69
|
+
holder {
|
|
70
|
+
name
|
|
71
|
+
surname
|
|
72
|
+
fullName
|
|
73
|
+
phoneNumber
|
|
74
|
+
emailAddress
|
|
75
|
+
}
|
|
76
|
+
notes
|
|
77
|
+
price {
|
|
78
|
+
original
|
|
79
|
+
retail
|
|
80
|
+
net
|
|
81
|
+
currencyPrecision
|
|
82
|
+
currency
|
|
83
|
+
}
|
|
84
|
+
cancelPolicy
|
|
85
|
+
optionId
|
|
86
|
+
resellerReference
|
|
87
|
+
publicUrl
|
|
88
|
+
privateUrl
|
|
89
|
+
}`;
|
|
90
|
+
|
|
91
|
+
module.exports = {
|
|
92
|
+
typeDefs,
|
|
93
|
+
query,
|
|
94
|
+
};
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
const typeDefs = `
|
|
2
|
+
type Restriction {
|
|
3
|
+
paxCount: Int
|
|
4
|
+
minAge: Int
|
|
5
|
+
maxAge: Int
|
|
6
|
+
}
|
|
7
|
+
type Pricing {
|
|
8
|
+
original: Int
|
|
9
|
+
retail: Int
|
|
10
|
+
currency: Int
|
|
11
|
+
currencyPrecision: Int
|
|
12
|
+
}
|
|
13
|
+
type Unit {
|
|
14
|
+
unitId: ID
|
|
15
|
+
unitName: String
|
|
16
|
+
subtitle: String!
|
|
17
|
+
restrictions: Restriction
|
|
18
|
+
pricing: [Pricing]
|
|
19
|
+
}
|
|
20
|
+
type Option {
|
|
21
|
+
optionId: ID
|
|
22
|
+
optionName: String
|
|
23
|
+
units: [Unit]
|
|
24
|
+
}
|
|
25
|
+
type Query {
|
|
26
|
+
productId: ID
|
|
27
|
+
productName: String
|
|
28
|
+
availableCurrencies: [String]
|
|
29
|
+
defaultCurrency: String
|
|
30
|
+
options: [Option]
|
|
31
|
+
}
|
|
32
|
+
`;
|
|
33
|
+
|
|
34
|
+
const query = `{
|
|
35
|
+
productId
|
|
36
|
+
productName
|
|
37
|
+
availableCurrencies
|
|
38
|
+
defaultCurrency
|
|
39
|
+
options {
|
|
40
|
+
optionId
|
|
41
|
+
optionName
|
|
42
|
+
units {
|
|
43
|
+
unitId
|
|
44
|
+
unitName
|
|
45
|
+
subtitle
|
|
46
|
+
pricing {
|
|
47
|
+
original
|
|
48
|
+
retail
|
|
49
|
+
currencyPrecision
|
|
50
|
+
currency
|
|
51
|
+
}
|
|
52
|
+
restrictions {
|
|
53
|
+
paxCount
|
|
54
|
+
minAge
|
|
55
|
+
maxAge
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}`;
|
|
60
|
+
|
|
61
|
+
module.exports = {
|
|
62
|
+
typeDefs,
|
|
63
|
+
query,
|
|
64
|
+
};
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
const typeDefs = `
|
|
2
|
+
type Pricing {
|
|
3
|
+
original: Int
|
|
4
|
+
retail: Int
|
|
5
|
+
currency: Int
|
|
6
|
+
currencyPrecision: Int
|
|
7
|
+
}
|
|
8
|
+
type Query {
|
|
9
|
+
rateId: ID
|
|
10
|
+
rateName: String
|
|
11
|
+
unitId: ID
|
|
12
|
+
unitName: String
|
|
13
|
+
pricing: [Pricing]
|
|
14
|
+
}
|
|
15
|
+
`;
|
|
16
|
+
|
|
17
|
+
const query = `{
|
|
18
|
+
rateId
|
|
19
|
+
rateName
|
|
20
|
+
unitId
|
|
21
|
+
unitName
|
|
22
|
+
pricing {
|
|
23
|
+
original
|
|
24
|
+
retail
|
|
25
|
+
currencyPrecision
|
|
26
|
+
currency
|
|
27
|
+
}
|
|
28
|
+
}`;
|
|
29
|
+
|
|
30
|
+
module.exports = {
|
|
31
|
+
typeDefs,
|
|
32
|
+
query,
|
|
33
|
+
};
|