btrz-api-client 8.66.1 → 8.68.1
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/client-standalone-min.js +3 -3
- package/lib/client.js +1 -0
- package/lib/endpoints/accounts/agencies.js +34 -7
- package/lib/endpoints/inventory/fare-type-modifiers.js +167 -0
- package/lib/endpoints/notifications/notify.js +55 -19
- package/package.json +1 -1
- package/src/client.js +1 -0
- package/src/endpoints/accounts/agencies.js +23 -1
- package/src/endpoints/inventory/fare-type-modifiers.js +140 -0
- package/src/endpoints/notifications/notify.js +28 -1
- package/test/all.test.js +1 -0
- package/test/endpoints/accounts/agencies.test.js +28 -0
- package/test/endpoints/inventory/fare-type-modifiers.test.js +76 -0
- package/test/endpoints/notifications/notify.test.js +18 -0
package/lib/client.js
CHANGED
|
@@ -87,6 +87,7 @@ function createInventory(_ref) {
|
|
|
87
87
|
documentTypes: require("./endpoints/inventory/document-types.js")({ client: client, internalAuthTokenProvider: internalAuthTokenProvider }),
|
|
88
88
|
externalPasses: require("./endpoints/inventory/external-passes.js")({ client: client, internalAuthTokenProvider: internalAuthTokenProvider }),
|
|
89
89
|
externalWallets: require("./endpoints/inventory/external-wallets.js")({ client: client, internalAuthTokenProvider: internalAuthTokenProvider }),
|
|
90
|
+
fareTypeModifiers: require("./endpoints/inventory/fare-type-modifiers.js")({ client: client, internalAuthTokenProvider: internalAuthTokenProvider }),
|
|
90
91
|
fallbackCodes: require("./endpoints/inventory/fallback-codes.js")({ client: client, internalAuthTokenProvider: internalAuthTokenProvider }),
|
|
91
92
|
fareClasses: require("./endpoints/inventory/fare-classes.js")({ client: client, internalAuthTokenProvider: internalAuthTokenProvider }),
|
|
92
93
|
fares: require("./endpoints/inventory/fares.js")({ client: client, internalAuthTokenProvider: internalAuthTokenProvider }),
|
|
@@ -9,7 +9,7 @@ var _require = require("../endpoints_helpers.js"),
|
|
|
9
9
|
* @param {Object} deps
|
|
10
10
|
* @param {import("axios").AxiosInstance} deps.client
|
|
11
11
|
* @param {{ getToken: function(): string }} [deps.internalAuthTokenProvider]
|
|
12
|
-
* @returns {{ putCreditLimit: function }}
|
|
12
|
+
* @returns {{ create: function, putCreditLimit: function }}
|
|
13
13
|
*/
|
|
14
14
|
|
|
15
15
|
|
|
@@ -17,6 +17,32 @@ function agenciesFactory(_ref) {
|
|
|
17
17
|
var client = _ref.client,
|
|
18
18
|
internalAuthTokenProvider = _ref.internalAuthTokenProvider;
|
|
19
19
|
|
|
20
|
+
/**
|
|
21
|
+
* POST /agencies - create an agency (seller account) and link it to the provider network.
|
|
22
|
+
* Requires X-API-KEY and Authorization (JWT).
|
|
23
|
+
* @param {Object} opts
|
|
24
|
+
* @param {string} opts.token - API key
|
|
25
|
+
* @param {string} opts.jwtToken - JWT
|
|
26
|
+
* @param {Object} opts.agency - agencyData payload ({ seller, network })
|
|
27
|
+
* @param {Object} [opts.headers] - Optional headers
|
|
28
|
+
* @returns {Promise<import("axios").AxiosResponse>}
|
|
29
|
+
*/
|
|
30
|
+
function create(_ref2) {
|
|
31
|
+
var token = _ref2.token,
|
|
32
|
+
jwtToken = _ref2.jwtToken,
|
|
33
|
+
agency = _ref2.agency,
|
|
34
|
+
headers = _ref2.headers;
|
|
35
|
+
|
|
36
|
+
return client({
|
|
37
|
+
url: "/agencies",
|
|
38
|
+
method: "post",
|
|
39
|
+
headers: authorizationHeaders({ token: token, jwtToken: jwtToken, internalAuthTokenProvider: internalAuthTokenProvider, headers: headers }),
|
|
40
|
+
data: {
|
|
41
|
+
agency: agency
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
|
|
20
46
|
/**
|
|
21
47
|
* PUT /agencies/:agencyId/credit-limit - update credit limit for an agency (seller) in the provider's network.
|
|
22
48
|
* Requires BETTEREZ_APP audience. Request body can be { limitAmount, unlimited } or { creditLimit: { limitAmount, unlimited } }.
|
|
@@ -29,12 +55,12 @@ function agenciesFactory(_ref) {
|
|
|
29
55
|
* @param {Object} [opts.headers] - Optional headers
|
|
30
56
|
* @returns {Promise<import("axios").AxiosResponse<{ creditLimit: { _id: string, sellerId: string, providerId: string, unlimited: boolean, overrideLimit: number, currentLimit: number } }>>}
|
|
31
57
|
*/
|
|
32
|
-
function putCreditLimit(
|
|
33
|
-
var token =
|
|
34
|
-
jwtToken =
|
|
35
|
-
agencyId =
|
|
36
|
-
data =
|
|
37
|
-
headers =
|
|
58
|
+
function putCreditLimit(_ref3) {
|
|
59
|
+
var token = _ref3.token,
|
|
60
|
+
jwtToken = _ref3.jwtToken,
|
|
61
|
+
agencyId = _ref3.agencyId,
|
|
62
|
+
data = _ref3.data,
|
|
63
|
+
headers = _ref3.headers;
|
|
38
64
|
|
|
39
65
|
return client({
|
|
40
66
|
url: "/agencies/" + agencyId + "/credit-limit",
|
|
@@ -45,6 +71,7 @@ function agenciesFactory(_ref) {
|
|
|
45
71
|
}
|
|
46
72
|
|
|
47
73
|
return {
|
|
74
|
+
create: create,
|
|
48
75
|
putCreditLimit: putCreditLimit
|
|
49
76
|
};
|
|
50
77
|
}
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _require = require("../endpoints_helpers.js"),
|
|
4
|
+
authorizationHeaders = _require.authorizationHeaders;
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Query params for GET /fare-type-modifiers (btrz-api-inventory). See get-handler getSpec().
|
|
8
|
+
* @typedef {Object} FareTypeModifiersListQuery
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Factory for fare-type-modifiers API (btrz-api-inventory).
|
|
13
|
+
* @param {Object} deps
|
|
14
|
+
* @param {import("axios").AxiosInstance} deps.client
|
|
15
|
+
* @param {{ getToken: function(): string }} [deps.internalAuthTokenProvider]
|
|
16
|
+
* @returns {{ all: function, get: function, create: function, update: function, remove: function }}
|
|
17
|
+
*/
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
function fareTypeModifierFactory(_ref) {
|
|
21
|
+
var client = _ref.client,
|
|
22
|
+
internalAuthTokenProvider = _ref.internalAuthTokenProvider;
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* GET /fare-type-modifiers - list fare-type modifiers (paginated).
|
|
26
|
+
* @param {Object} opts
|
|
27
|
+
* @param {string} [opts.token] - API key
|
|
28
|
+
* @param {FareTypeModifiersListQuery} [opts.query] - Query params
|
|
29
|
+
* @param {Object} [opts.headers] - Optional headers
|
|
30
|
+
* @returns {Promise<import("axios").AxiosResponse<{ fareTypeModifiers: Object[], next?: string, previous?: string, count: number }>>}
|
|
31
|
+
* @throws
|
|
32
|
+
* - 401 Unauthorized
|
|
33
|
+
* - 500 Internal server error
|
|
34
|
+
*/
|
|
35
|
+
function all(_ref2) {
|
|
36
|
+
var token = _ref2.token,
|
|
37
|
+
_ref2$query = _ref2.query,
|
|
38
|
+
query = _ref2$query === undefined ? {} : _ref2$query,
|
|
39
|
+
headers = _ref2.headers;
|
|
40
|
+
|
|
41
|
+
return client.get("/fare-type-modifiers", {
|
|
42
|
+
params: query,
|
|
43
|
+
headers: authorizationHeaders({ token: token, internalAuthTokenProvider: internalAuthTokenProvider, headers: headers })
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* GET /fare-type-modifiers/:fareTypeModifierId - get fare-type modifier by id. API does not accept query params.
|
|
49
|
+
* @param {Object} opts
|
|
50
|
+
* @param {string} opts.fareTypeModifierId - Fare-type modifier id (24 hex characters)
|
|
51
|
+
* @param {string} [opts.token] - API key
|
|
52
|
+
* @param {Object} [opts.headers] - Optional headers
|
|
53
|
+
* @returns {Promise<import("axios").AxiosResponse<{ fareTypeModifier: Object }>>}
|
|
54
|
+
* @throws
|
|
55
|
+
* - 400 WRONG_DATA, WRONG_FARE_TYPE_MODIFIER_ID
|
|
56
|
+
* - 401 Unauthorized
|
|
57
|
+
* - 404 FARE_TYPE_MODIFIER_NOT_FOUND
|
|
58
|
+
* - 500 Internal server error
|
|
59
|
+
*/
|
|
60
|
+
function get(_ref3) {
|
|
61
|
+
var fareTypeModifierId = _ref3.fareTypeModifierId,
|
|
62
|
+
token = _ref3.token,
|
|
63
|
+
headers = _ref3.headers;
|
|
64
|
+
|
|
65
|
+
return client.get("/fare-type-modifiers/" + fareTypeModifierId, {
|
|
66
|
+
headers: authorizationHeaders({ token: token, internalAuthTokenProvider: internalAuthTokenProvider, headers: headers })
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* POST /fare-type-modifiers - create fare-type modifier. API does not accept query params.
|
|
72
|
+
* @param {Object} opts
|
|
73
|
+
* @param {string} [opts.jwtToken] - JWT or internal auth symbol
|
|
74
|
+
* @param {string} [opts.token] - API key
|
|
75
|
+
* @param {Object} opts.fareTypeModifier - Fare-type modifier payload (FareTypeModifierPostData)
|
|
76
|
+
* @param {Object} [opts.headers] - Optional headers
|
|
77
|
+
* @returns {Promise<import("axios").AxiosResponse<{ fareTypeModifier: Object }>>}
|
|
78
|
+
* @throws
|
|
79
|
+
* - 400 WRONG_DATA, *_NOT_FOUND, INVALID_*, DUPLICATE_*
|
|
80
|
+
* - 401 Unauthorized
|
|
81
|
+
* - 500 Internal server error
|
|
82
|
+
*/
|
|
83
|
+
function create(_ref4) {
|
|
84
|
+
var jwtToken = _ref4.jwtToken,
|
|
85
|
+
token = _ref4.token,
|
|
86
|
+
fareTypeModifier = _ref4.fareTypeModifier,
|
|
87
|
+
headers = _ref4.headers;
|
|
88
|
+
|
|
89
|
+
return client({
|
|
90
|
+
url: "/fare-type-modifiers",
|
|
91
|
+
method: "post",
|
|
92
|
+
headers: authorizationHeaders({ token: token, jwtToken: jwtToken, internalAuthTokenProvider: internalAuthTokenProvider, headers: headers }),
|
|
93
|
+
data: {
|
|
94
|
+
fareTypeModifier: fareTypeModifier
|
|
95
|
+
}
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
/**
|
|
100
|
+
* DELETE /fare-type-modifiers/:fareTypeModifierId - remove fare-type modifier. API does not accept query params.
|
|
101
|
+
* @param {Object} opts
|
|
102
|
+
* @param {string} [opts.jwtToken] - JWT or internal auth symbol
|
|
103
|
+
* @param {string} opts.fareTypeModifierId - Fare-type modifier id (24 hex characters)
|
|
104
|
+
* @param {string} [opts.token] - API key
|
|
105
|
+
* @param {Object} [opts.headers] - Optional headers
|
|
106
|
+
* @returns {Promise<import("axios").AxiosResponse<{ fareTypeModifierId: string }>>}
|
|
107
|
+
* @throws
|
|
108
|
+
* - 400 WRONG_FARE_TYPE_MODIFIER_ID
|
|
109
|
+
* - 401 Unauthorized
|
|
110
|
+
* - 404 FARE_TYPE_MODIFIER_NOT_FOUND
|
|
111
|
+
* - 500 Internal server error
|
|
112
|
+
*/
|
|
113
|
+
function remove(_ref5) {
|
|
114
|
+
var jwtToken = _ref5.jwtToken,
|
|
115
|
+
fareTypeModifierId = _ref5.fareTypeModifierId,
|
|
116
|
+
token = _ref5.token,
|
|
117
|
+
headers = _ref5.headers;
|
|
118
|
+
|
|
119
|
+
return client({
|
|
120
|
+
url: "/fare-type-modifiers/" + fareTypeModifierId,
|
|
121
|
+
method: "delete",
|
|
122
|
+
headers: authorizationHeaders({ token: token, jwtToken: jwtToken, internalAuthTokenProvider: internalAuthTokenProvider, headers: headers })
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
/**
|
|
127
|
+
* PUT /fare-type-modifiers/:fareTypeModifierId - update fare-type modifier. API does not accept query params.
|
|
128
|
+
* @param {Object} opts
|
|
129
|
+
* @param {string} [opts.jwtToken] - JWT or internal auth symbol
|
|
130
|
+
* @param {string} [opts.token] - API key
|
|
131
|
+
* @param {string} opts.fareTypeModifierId - Fare-type modifier id (24 hex characters)
|
|
132
|
+
* @param {Object} opts.fareTypeModifier - Fare-type modifier payload (FareTypeModifierPutData)
|
|
133
|
+
* @param {Object} [opts.headers] - Optional headers
|
|
134
|
+
* @returns {Promise<import("axios").AxiosResponse<{ fareTypeModifier: Object }>>}
|
|
135
|
+
* @throws
|
|
136
|
+
* - 400 WRONG_DATA, *_NOT_FOUND, INVALID_*, DUPLICATE_*
|
|
137
|
+
* - 401 Unauthorized
|
|
138
|
+
* - 404 FARE_TYPE_MODIFIER_NOT_FOUND
|
|
139
|
+
* - 500 Internal server error
|
|
140
|
+
*/
|
|
141
|
+
function update(_ref6) {
|
|
142
|
+
var jwtToken = _ref6.jwtToken,
|
|
143
|
+
token = _ref6.token,
|
|
144
|
+
fareTypeModifierId = _ref6.fareTypeModifierId,
|
|
145
|
+
fareTypeModifier = _ref6.fareTypeModifier,
|
|
146
|
+
headers = _ref6.headers;
|
|
147
|
+
|
|
148
|
+
return client({
|
|
149
|
+
url: "/fare-type-modifiers/" + fareTypeModifierId,
|
|
150
|
+
method: "put",
|
|
151
|
+
headers: authorizationHeaders({ token: token, jwtToken: jwtToken, internalAuthTokenProvider: internalAuthTokenProvider, headers: headers }),
|
|
152
|
+
data: {
|
|
153
|
+
fareTypeModifier: fareTypeModifier
|
|
154
|
+
}
|
|
155
|
+
});
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
return {
|
|
159
|
+
all: all,
|
|
160
|
+
get: get,
|
|
161
|
+
create: create,
|
|
162
|
+
update: update,
|
|
163
|
+
remove: remove
|
|
164
|
+
};
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
module.exports = fareTypeModifierFactory;
|
|
@@ -128,6 +128,7 @@ function notifyTicketFactory(_ref) {
|
|
|
128
128
|
jwtToken = _ref4.jwtToken,
|
|
129
129
|
email = _ref4.email,
|
|
130
130
|
lang = _ref4.lang,
|
|
131
|
+
accountId = _ref4.accountId,
|
|
131
132
|
headers = _ref4.headers;
|
|
132
133
|
|
|
133
134
|
return client({
|
|
@@ -135,6 +136,41 @@ function notifyTicketFactory(_ref) {
|
|
|
135
136
|
method: "post",
|
|
136
137
|
data: {
|
|
137
138
|
email: email,
|
|
139
|
+
lang: lang,
|
|
140
|
+
accountId: accountId
|
|
141
|
+
},
|
|
142
|
+
headers: authorizationHeaders({ token: token, jwtToken: jwtToken, internalAuthTokenProvider: internalAuthTokenProvider, headers: headers })
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
},
|
|
146
|
+
newSeller: {
|
|
147
|
+
/**
|
|
148
|
+
* POST /notify-new-seller - welcome email for a new agency (seller).
|
|
149
|
+
* @param {Object} opts
|
|
150
|
+
* @param {string} [opts.token] - API key (provider)
|
|
151
|
+
* @param {string} [opts.jwtToken] - Internal service JWT
|
|
152
|
+
* @param {string} opts.sellerEmail - Agency admin email
|
|
153
|
+
* @param {string} opts.sellerDomain - Agency subdomain
|
|
154
|
+
* @param {string} [opts.providerAdminEmail] - Support contact in the email
|
|
155
|
+
* @param {string} [opts.lang] - Template lexicon language (e.g. en-us)
|
|
156
|
+
* @param {Object} [opts.headers] - Optional headers
|
|
157
|
+
*/
|
|
158
|
+
create: function create(_ref5) {
|
|
159
|
+
var token = _ref5.token,
|
|
160
|
+
jwtToken = _ref5.jwtToken,
|
|
161
|
+
sellerEmail = _ref5.sellerEmail,
|
|
162
|
+
sellerDomain = _ref5.sellerDomain,
|
|
163
|
+
providerAdminEmail = _ref5.providerAdminEmail,
|
|
164
|
+
lang = _ref5.lang,
|
|
165
|
+
headers = _ref5.headers;
|
|
166
|
+
|
|
167
|
+
return client({
|
|
168
|
+
url: "/notify-new-seller",
|
|
169
|
+
method: "post",
|
|
170
|
+
data: {
|
|
171
|
+
sellerEmail: sellerEmail,
|
|
172
|
+
sellerDomain: sellerDomain,
|
|
173
|
+
providerAdminEmail: providerAdminEmail,
|
|
138
174
|
lang: lang
|
|
139
175
|
},
|
|
140
176
|
headers: authorizationHeaders({ token: token, jwtToken: jwtToken, internalAuthTokenProvider: internalAuthTokenProvider, headers: headers })
|
|
@@ -154,14 +190,14 @@ function notifyTicketFactory(_ref) {
|
|
|
154
190
|
* @param {Object} [opts.headers] - Optional headers
|
|
155
191
|
* @returns {Promise<import("axios").AxiosResponse>}
|
|
156
192
|
*/
|
|
157
|
-
create: function create(
|
|
158
|
-
var token =
|
|
159
|
-
jwtToken =
|
|
160
|
-
query =
|
|
161
|
-
operation =
|
|
162
|
-
to =
|
|
163
|
-
ticketId =
|
|
164
|
-
headers =
|
|
193
|
+
create: function create(_ref6) {
|
|
194
|
+
var token = _ref6.token,
|
|
195
|
+
jwtToken = _ref6.jwtToken,
|
|
196
|
+
query = _ref6.query,
|
|
197
|
+
operation = _ref6.operation,
|
|
198
|
+
to = _ref6.to,
|
|
199
|
+
ticketId = _ref6.ticketId,
|
|
200
|
+
headers = _ref6.headers;
|
|
165
201
|
|
|
166
202
|
return client({
|
|
167
203
|
url: "/notify-tickets/" + ticketId,
|
|
@@ -186,12 +222,12 @@ function notifyTicketFactory(_ref) {
|
|
|
186
222
|
* @param {Object} [opts.headers] - Optional headers
|
|
187
223
|
* @returns {Promise<import("axios").AxiosResponse>}
|
|
188
224
|
*/
|
|
189
|
-
create: function create(
|
|
190
|
-
var token =
|
|
191
|
-
jwtToken =
|
|
192
|
-
query =
|
|
193
|
-
data =
|
|
194
|
-
headers =
|
|
225
|
+
create: function create(_ref7) {
|
|
226
|
+
var token = _ref7.token,
|
|
227
|
+
jwtToken = _ref7.jwtToken,
|
|
228
|
+
query = _ref7.query,
|
|
229
|
+
data = _ref7.data,
|
|
230
|
+
headers = _ref7.headers;
|
|
195
231
|
|
|
196
232
|
return client({
|
|
197
233
|
url: "/notify-vouchers",
|
|
@@ -212,11 +248,11 @@ function notifyTicketFactory(_ref) {
|
|
|
212
248
|
* @param {Object} [opts.headers] - Optional headers
|
|
213
249
|
* @returns {Promise<import("axios").AxiosResponse>}
|
|
214
250
|
*/
|
|
215
|
-
create: function create(
|
|
216
|
-
var token =
|
|
217
|
-
jwtToken =
|
|
218
|
-
data =
|
|
219
|
-
headers =
|
|
251
|
+
create: function create(_ref8) {
|
|
252
|
+
var token = _ref8.token,
|
|
253
|
+
jwtToken = _ref8.jwtToken,
|
|
254
|
+
data = _ref8.data,
|
|
255
|
+
headers = _ref8.headers;
|
|
220
256
|
|
|
221
257
|
return client({
|
|
222
258
|
url: "/notify-manifest",
|
package/package.json
CHANGED
package/src/client.js
CHANGED
|
@@ -74,6 +74,7 @@ function createInventory({baseURL, headers, timeout, overrideFn, internalAuthTok
|
|
|
74
74
|
documentTypes: require("./endpoints/inventory/document-types.js")({client, internalAuthTokenProvider}),
|
|
75
75
|
externalPasses: require("./endpoints/inventory/external-passes.js")({client, internalAuthTokenProvider}),
|
|
76
76
|
externalWallets: require("./endpoints/inventory/external-wallets.js")({client, internalAuthTokenProvider}),
|
|
77
|
+
fareTypeModifiers: require("./endpoints/inventory/fare-type-modifiers.js")({client, internalAuthTokenProvider}),
|
|
77
78
|
fallbackCodes: require("./endpoints/inventory/fallback-codes.js")({client, internalAuthTokenProvider}),
|
|
78
79
|
fareClasses: require("./endpoints/inventory/fare-classes.js")({client, internalAuthTokenProvider}),
|
|
79
80
|
fares: require("./endpoints/inventory/fares.js")({client, internalAuthTokenProvider}),
|
|
@@ -8,9 +8,30 @@ const {
|
|
|
8
8
|
* @param {Object} deps
|
|
9
9
|
* @param {import("axios").AxiosInstance} deps.client
|
|
10
10
|
* @param {{ getToken: function(): string }} [deps.internalAuthTokenProvider]
|
|
11
|
-
* @returns {{ putCreditLimit: function }}
|
|
11
|
+
* @returns {{ create: function, putCreditLimit: function }}
|
|
12
12
|
*/
|
|
13
13
|
function agenciesFactory({client, internalAuthTokenProvider}) {
|
|
14
|
+
/**
|
|
15
|
+
* POST /agencies - create an agency (seller account) and link it to the provider network.
|
|
16
|
+
* Requires X-API-KEY and Authorization (JWT).
|
|
17
|
+
* @param {Object} opts
|
|
18
|
+
* @param {string} opts.token - API key
|
|
19
|
+
* @param {string} opts.jwtToken - JWT
|
|
20
|
+
* @param {Object} opts.agency - agencyData payload ({ seller, network })
|
|
21
|
+
* @param {Object} [opts.headers] - Optional headers
|
|
22
|
+
* @returns {Promise<import("axios").AxiosResponse>}
|
|
23
|
+
*/
|
|
24
|
+
function create({token, jwtToken, agency, headers}) {
|
|
25
|
+
return client({
|
|
26
|
+
url: "/agencies",
|
|
27
|
+
method: "post",
|
|
28
|
+
headers: authorizationHeaders({token, jwtToken, internalAuthTokenProvider, headers}),
|
|
29
|
+
data: {
|
|
30
|
+
agency
|
|
31
|
+
}
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
|
|
14
35
|
/**
|
|
15
36
|
* PUT /agencies/:agencyId/credit-limit - update credit limit for an agency (seller) in the provider's network.
|
|
16
37
|
* Requires BETTEREZ_APP audience. Request body can be { limitAmount, unlimited } or { creditLimit: { limitAmount, unlimited } }.
|
|
@@ -33,6 +54,7 @@ function agenciesFactory({client, internalAuthTokenProvider}) {
|
|
|
33
54
|
}
|
|
34
55
|
|
|
35
56
|
return {
|
|
57
|
+
create,
|
|
36
58
|
putCreditLimit
|
|
37
59
|
};
|
|
38
60
|
}
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
const {
|
|
2
|
+
authorizationHeaders
|
|
3
|
+
} = require("../endpoints_helpers.js");
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Query params for GET /fare-type-modifiers (btrz-api-inventory). See get-handler getSpec().
|
|
7
|
+
* @typedef {Object} FareTypeModifiersListQuery
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Factory for fare-type-modifiers API (btrz-api-inventory).
|
|
12
|
+
* @param {Object} deps
|
|
13
|
+
* @param {import("axios").AxiosInstance} deps.client
|
|
14
|
+
* @param {{ getToken: function(): string }} [deps.internalAuthTokenProvider]
|
|
15
|
+
* @returns {{ all: function, get: function, create: function, update: function, remove: function }}
|
|
16
|
+
*/
|
|
17
|
+
function fareTypeModifierFactory({client, internalAuthTokenProvider}) {
|
|
18
|
+
/**
|
|
19
|
+
* GET /fare-type-modifiers - list fare-type modifiers (paginated).
|
|
20
|
+
* @param {Object} opts
|
|
21
|
+
* @param {string} [opts.token] - API key
|
|
22
|
+
* @param {FareTypeModifiersListQuery} [opts.query] - Query params
|
|
23
|
+
* @param {Object} [opts.headers] - Optional headers
|
|
24
|
+
* @returns {Promise<import("axios").AxiosResponse<{ fareTypeModifiers: Object[], next?: string, previous?: string, count: number }>>}
|
|
25
|
+
* @throws
|
|
26
|
+
* - 401 Unauthorized
|
|
27
|
+
* - 500 Internal server error
|
|
28
|
+
*/
|
|
29
|
+
function all({
|
|
30
|
+
token,
|
|
31
|
+
query = {},
|
|
32
|
+
headers
|
|
33
|
+
}) {
|
|
34
|
+
return client.get("/fare-type-modifiers", {
|
|
35
|
+
params: query,
|
|
36
|
+
headers: authorizationHeaders({token, internalAuthTokenProvider, headers})
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* GET /fare-type-modifiers/:fareTypeModifierId - get fare-type modifier by id. API does not accept query params.
|
|
42
|
+
* @param {Object} opts
|
|
43
|
+
* @param {string} opts.fareTypeModifierId - Fare-type modifier id (24 hex characters)
|
|
44
|
+
* @param {string} [opts.token] - API key
|
|
45
|
+
* @param {Object} [opts.headers] - Optional headers
|
|
46
|
+
* @returns {Promise<import("axios").AxiosResponse<{ fareTypeModifier: Object }>>}
|
|
47
|
+
* @throws
|
|
48
|
+
* - 400 WRONG_DATA, WRONG_FARE_TYPE_MODIFIER_ID
|
|
49
|
+
* - 401 Unauthorized
|
|
50
|
+
* - 404 FARE_TYPE_MODIFIER_NOT_FOUND
|
|
51
|
+
* - 500 Internal server error
|
|
52
|
+
*/
|
|
53
|
+
function get({fareTypeModifierId, token, headers}) {
|
|
54
|
+
return client.get(`/fare-type-modifiers/${fareTypeModifierId}`, {
|
|
55
|
+
headers: authorizationHeaders({token, internalAuthTokenProvider, headers})
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* POST /fare-type-modifiers - create fare-type modifier. API does not accept query params.
|
|
61
|
+
* @param {Object} opts
|
|
62
|
+
* @param {string} [opts.jwtToken] - JWT or internal auth symbol
|
|
63
|
+
* @param {string} [opts.token] - API key
|
|
64
|
+
* @param {Object} opts.fareTypeModifier - Fare-type modifier payload (FareTypeModifierPostData)
|
|
65
|
+
* @param {Object} [opts.headers] - Optional headers
|
|
66
|
+
* @returns {Promise<import("axios").AxiosResponse<{ fareTypeModifier: Object }>>}
|
|
67
|
+
* @throws
|
|
68
|
+
* - 400 WRONG_DATA, *_NOT_FOUND, INVALID_*, DUPLICATE_*
|
|
69
|
+
* - 401 Unauthorized
|
|
70
|
+
* - 500 Internal server error
|
|
71
|
+
*/
|
|
72
|
+
function create({jwtToken, token, fareTypeModifier, headers}) {
|
|
73
|
+
return client({
|
|
74
|
+
url: "/fare-type-modifiers",
|
|
75
|
+
method: "post",
|
|
76
|
+
headers: authorizationHeaders({token, jwtToken, internalAuthTokenProvider, headers}),
|
|
77
|
+
data: {
|
|
78
|
+
fareTypeModifier
|
|
79
|
+
}
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
/**
|
|
84
|
+
* DELETE /fare-type-modifiers/:fareTypeModifierId - remove fare-type modifier. API does not accept query params.
|
|
85
|
+
* @param {Object} opts
|
|
86
|
+
* @param {string} [opts.jwtToken] - JWT or internal auth symbol
|
|
87
|
+
* @param {string} opts.fareTypeModifierId - Fare-type modifier id (24 hex characters)
|
|
88
|
+
* @param {string} [opts.token] - API key
|
|
89
|
+
* @param {Object} [opts.headers] - Optional headers
|
|
90
|
+
* @returns {Promise<import("axios").AxiosResponse<{ fareTypeModifierId: string }>>}
|
|
91
|
+
* @throws
|
|
92
|
+
* - 400 WRONG_FARE_TYPE_MODIFIER_ID
|
|
93
|
+
* - 401 Unauthorized
|
|
94
|
+
* - 404 FARE_TYPE_MODIFIER_NOT_FOUND
|
|
95
|
+
* - 500 Internal server error
|
|
96
|
+
*/
|
|
97
|
+
function remove({jwtToken, fareTypeModifierId, token, headers}) {
|
|
98
|
+
return client({
|
|
99
|
+
url: `/fare-type-modifiers/${fareTypeModifierId}`,
|
|
100
|
+
method: "delete",
|
|
101
|
+
headers: authorizationHeaders({token, jwtToken, internalAuthTokenProvider, headers})
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
/**
|
|
106
|
+
* PUT /fare-type-modifiers/:fareTypeModifierId - update fare-type modifier. API does not accept query params.
|
|
107
|
+
* @param {Object} opts
|
|
108
|
+
* @param {string} [opts.jwtToken] - JWT or internal auth symbol
|
|
109
|
+
* @param {string} [opts.token] - API key
|
|
110
|
+
* @param {string} opts.fareTypeModifierId - Fare-type modifier id (24 hex characters)
|
|
111
|
+
* @param {Object} opts.fareTypeModifier - Fare-type modifier payload (FareTypeModifierPutData)
|
|
112
|
+
* @param {Object} [opts.headers] - Optional headers
|
|
113
|
+
* @returns {Promise<import("axios").AxiosResponse<{ fareTypeModifier: Object }>>}
|
|
114
|
+
* @throws
|
|
115
|
+
* - 400 WRONG_DATA, *_NOT_FOUND, INVALID_*, DUPLICATE_*
|
|
116
|
+
* - 401 Unauthorized
|
|
117
|
+
* - 404 FARE_TYPE_MODIFIER_NOT_FOUND
|
|
118
|
+
* - 500 Internal server error
|
|
119
|
+
*/
|
|
120
|
+
function update({jwtToken, token, fareTypeModifierId, fareTypeModifier, headers}) {
|
|
121
|
+
return client({
|
|
122
|
+
url: `/fare-type-modifiers/${fareTypeModifierId}`,
|
|
123
|
+
method: "put",
|
|
124
|
+
headers: authorizationHeaders({token, jwtToken, internalAuthTokenProvider, headers}),
|
|
125
|
+
data: {
|
|
126
|
+
fareTypeModifier
|
|
127
|
+
}
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
return {
|
|
132
|
+
all,
|
|
133
|
+
get,
|
|
134
|
+
create,
|
|
135
|
+
update,
|
|
136
|
+
remove
|
|
137
|
+
};
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
module.exports = fareTypeModifierFactory;
|
|
@@ -109,12 +109,39 @@ function notifyTicketFactory({
|
|
|
109
109
|
* @param {Object} [opts.headers] - Optional headers
|
|
110
110
|
* @returns {Promise<import("axios").AxiosResponse>}
|
|
111
111
|
*/
|
|
112
|
-
create({token, jwtToken, email, lang, headers}) {
|
|
112
|
+
create({token, jwtToken, email, lang, accountId, headers}) {
|
|
113
113
|
return client({
|
|
114
114
|
url: "/notify-child-user",
|
|
115
115
|
method: "post",
|
|
116
116
|
data: {
|
|
117
117
|
email,
|
|
118
|
+
lang,
|
|
119
|
+
accountId
|
|
120
|
+
},
|
|
121
|
+
headers: authorizationHeaders({token, jwtToken, internalAuthTokenProvider, headers})
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
},
|
|
125
|
+
newSeller: {
|
|
126
|
+
/**
|
|
127
|
+
* POST /notify-new-seller - welcome email for a new agency (seller).
|
|
128
|
+
* @param {Object} opts
|
|
129
|
+
* @param {string} [opts.token] - API key (provider)
|
|
130
|
+
* @param {string} [opts.jwtToken] - Internal service JWT
|
|
131
|
+
* @param {string} opts.sellerEmail - Agency admin email
|
|
132
|
+
* @param {string} opts.sellerDomain - Agency subdomain
|
|
133
|
+
* @param {string} [opts.providerAdminEmail] - Support contact in the email
|
|
134
|
+
* @param {string} [opts.lang] - Template lexicon language (e.g. en-us)
|
|
135
|
+
* @param {Object} [opts.headers] - Optional headers
|
|
136
|
+
*/
|
|
137
|
+
create({token, jwtToken, sellerEmail, sellerDomain, providerAdminEmail, lang, headers}) {
|
|
138
|
+
return client({
|
|
139
|
+
url: "/notify-new-seller",
|
|
140
|
+
method: "post",
|
|
141
|
+
data: {
|
|
142
|
+
sellerEmail,
|
|
143
|
+
sellerDomain,
|
|
144
|
+
providerAdminEmail,
|
|
118
145
|
lang
|
|
119
146
|
},
|
|
120
147
|
headers: authorizationHeaders({token, jwtToken, internalAuthTokenProvider, headers})
|
package/test/all.test.js
CHANGED
|
@@ -88,6 +88,7 @@ require("./endpoints/inventory/external-wallets.test.js");
|
|
|
88
88
|
require("./endpoints/inventory/fallback-codes.test.js");
|
|
89
89
|
require("./endpoints/inventory/fare-classes.test.js");
|
|
90
90
|
require("./endpoints/inventory/fares.test.js");
|
|
91
|
+
require("./endpoints/inventory/fare-type-modifiers.test.js");
|
|
91
92
|
require("./endpoints/inventory/fees.test.js");
|
|
92
93
|
require("./endpoints/inventory/filtered-trips-v2.test.js");
|
|
93
94
|
require("./endpoints/inventory/filtered-trips.test.js");
|
|
@@ -14,6 +14,34 @@ describe("accounts/agencies", () => {
|
|
|
14
14
|
axiosMock.reset();
|
|
15
15
|
});
|
|
16
16
|
|
|
17
|
+
it("should POST an agency", () => {
|
|
18
|
+
const agency = {
|
|
19
|
+
seller: {
|
|
20
|
+
name: "Agency One",
|
|
21
|
+
domain: "agency-one",
|
|
22
|
+
email: "admin@agency-one.com",
|
|
23
|
+
password: "password",
|
|
24
|
+
confirmPassword: "password"
|
|
25
|
+
},
|
|
26
|
+
network: {
|
|
27
|
+
productIds: ["productId"]
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
axiosMock.onPost("/agencies").reply(expectRequest({
|
|
32
|
+
statusCode: 200,
|
|
33
|
+
token,
|
|
34
|
+
jwtToken,
|
|
35
|
+
body: {agency}
|
|
36
|
+
}));
|
|
37
|
+
|
|
38
|
+
return api.accounts.agencies.create({
|
|
39
|
+
token,
|
|
40
|
+
jwtToken,
|
|
41
|
+
agency
|
|
42
|
+
});
|
|
43
|
+
});
|
|
44
|
+
|
|
17
45
|
it("should PUT credit limit for an agency", () => {
|
|
18
46
|
const agencyId = "507f1f77bcf86cd799439011";
|
|
19
47
|
const data = {
|