btrz-api-client 8.51.0 → 8.53.0
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/system-model-settings.js +75 -0
- package/lib/endpoints/inventory/countries.js +3 -2
- package/package.json +1 -1
- package/src/client.js +1 -0
- package/src/endpoints/accounts/system-model-settings.js +58 -0
- package/src/endpoints/inventory/countries.js +3 -2
- package/test/endpoints/accounts/system-model-settings.test.js +37 -0
- package/test/endpoints/inventory/countries.test.js +6 -0
package/lib/client.js
CHANGED
|
@@ -265,6 +265,7 @@ function createAccounts(_ref4) {
|
|
|
265
265
|
salesforceSettings: require("./endpoints/accounts/salesforce-settings.js")({ client: client, internalAuthTokenProvider: internalAuthTokenProvider }),
|
|
266
266
|
shifts: require("./endpoints/accounts/shifts.js")({ client: client, internalAuthTokenProvider: internalAuthTokenProvider }),
|
|
267
267
|
shiftSettings: require("./endpoints/accounts/shift-settings.js")({ client: client, internalAuthTokenProvider: internalAuthTokenProvider }),
|
|
268
|
+
systemModelSettings: require("./endpoints/accounts/system-model-settings.js")({ client: client, internalAuthTokenProvider: internalAuthTokenProvider }),
|
|
268
269
|
ticketMovementSettings: require("./endpoints/accounts/ticket-movement-settings.js")({ client: client, internalAuthTokenProvider: internalAuthTokenProvider }),
|
|
269
270
|
tokens: require("./endpoints/accounts/tokens.js")({ client: client, internalAuthTokenProvider: internalAuthTokenProvider }),
|
|
270
271
|
travellers: require("./endpoints/accounts/travellers.js")({
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _require = require("./../endpoints_helpers.js"),
|
|
4
|
+
authorizationHeaders = _require.authorizationHeaders;
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Factory for system-model-settings API (btrz-api-accounts). Requires BETTEREZ_APP audience.
|
|
8
|
+
* @param {Object} deps
|
|
9
|
+
* @param {import("axios").AxiosInstance} deps.client
|
|
10
|
+
* @param {{ getToken: function(): string }} [deps.internalAuthTokenProvider]
|
|
11
|
+
* @returns {{ get: function, update: function }}
|
|
12
|
+
*/
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
function systemModelSettingsFactory(_ref) {
|
|
16
|
+
var client = _ref.client,
|
|
17
|
+
internalAuthTokenProvider = _ref.internalAuthTokenProvider;
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* GET /system-models/:modelName/settings – required-field settings for a system model.
|
|
21
|
+
* @param {Object} opts
|
|
22
|
+
* @param {string} opts.modelName - System model
|
|
23
|
+
* @param {string} [opts.token] - API key
|
|
24
|
+
* @param {string} [opts.jwtToken] - JWT or internal auth symbol
|
|
25
|
+
* @param {Object} [opts.headers] - Optional headers
|
|
26
|
+
* @returns {Promise<import("axios").AxiosResponse<{ systemModelSettings: object }>>}
|
|
27
|
+
*/
|
|
28
|
+
function get(_ref2) {
|
|
29
|
+
var token = _ref2.token,
|
|
30
|
+
jwtToken = _ref2.jwtToken,
|
|
31
|
+
modelName = _ref2.modelName,
|
|
32
|
+
headers = _ref2.headers;
|
|
33
|
+
|
|
34
|
+
return client({
|
|
35
|
+
url: "/system-models/" + modelName + "/settings",
|
|
36
|
+
headers: authorizationHeaders({ token: token, jwtToken: jwtToken, internalAuthTokenProvider: internalAuthTokenProvider, headers: headers })
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* PUT /system-models/:modelName/settings – create or update required-field settings.
|
|
42
|
+
* @param {Object} opts
|
|
43
|
+
* @param {string} opts.modelName - System model
|
|
44
|
+
* @param {string} [opts.token] - API key
|
|
45
|
+
* @param {string} [opts.jwtToken] - JWT or internal auth symbol
|
|
46
|
+
* @param {Object} opts.systemModelSettings - Payload (requiredFields, etc.)
|
|
47
|
+
* @param {Object} [opts.headers] - Optional headers
|
|
48
|
+
* @returns {Promise<import("axios").AxiosResponse<{ systemModelSettings: object }>>}
|
|
49
|
+
*/
|
|
50
|
+
function update(_ref3) {
|
|
51
|
+
var jwtToken = _ref3.jwtToken,
|
|
52
|
+
token = _ref3.token,
|
|
53
|
+
modelName = _ref3.modelName,
|
|
54
|
+
systemModelSettings = _ref3.systemModelSettings,
|
|
55
|
+
headers = _ref3.headers;
|
|
56
|
+
|
|
57
|
+
return client({
|
|
58
|
+
url: "/system-models/" + modelName + "/settings",
|
|
59
|
+
method: "put",
|
|
60
|
+
headers: authorizationHeaders({
|
|
61
|
+
token: token, jwtToken: jwtToken, internalAuthTokenProvider: internalAuthTokenProvider, headers: headers
|
|
62
|
+
}),
|
|
63
|
+
data: {
|
|
64
|
+
systemModelSettings: systemModelSettings
|
|
65
|
+
}
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
return {
|
|
70
|
+
get: get,
|
|
71
|
+
update: update
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
module.exports = systemModelSettingsFactory;
|
|
@@ -7,6 +7,7 @@ var _require = require("./../endpoints_helpers.js"),
|
|
|
7
7
|
* Query params for GET /countries (btrz-api-inventory). See get-countries getSpec().
|
|
8
8
|
* @typedef {Object} CountriesListQuery
|
|
9
9
|
* @property {string} [isoCode] - Country 2- or 3-letter ISO code (must be 2 or 3 chars if provided)
|
|
10
|
+
* @property {"name"|"ord"} [sortBy] - Sort: `name` (default) by country name ascending; `ord` by display order then name
|
|
10
11
|
*/
|
|
11
12
|
|
|
12
13
|
/**
|
|
@@ -30,11 +31,11 @@ function countriesFactory(_ref) {
|
|
|
30
31
|
internalAuthTokenProvider = _ref.internalAuthTokenProvider;
|
|
31
32
|
|
|
32
33
|
/**
|
|
33
|
-
* GET /countries — List countries. Optional filter by isoCode (2 or 3 characters).
|
|
34
|
+
* GET /countries — List countries. Optional filter by isoCode (2 or 3 characters) and sortBy.
|
|
34
35
|
* @param {Object} opts
|
|
35
36
|
* @param {string} [opts.token] - API key
|
|
36
37
|
* @param {string} [opts.jwtToken] - JWT or internal auth
|
|
37
|
-
* @param {CountriesListQuery} [opts.query] - Query params (isoCode)
|
|
38
|
+
* @param {CountriesListQuery} [opts.query] - Query params (isoCode, sortBy)
|
|
38
39
|
* @param {Object} [opts.headers] - Optional headers
|
|
39
40
|
* @returns {Promise<import("axios").AxiosResponse<{ countries: Object[] }>>}
|
|
40
41
|
* @throws 400 Validation failure (e.g. invalid isoCode length)
|
package/package.json
CHANGED
package/src/client.js
CHANGED
|
@@ -229,6 +229,7 @@ function createAccounts({baseURL, headers, timeout, overrideFn, internalAuthToke
|
|
|
229
229
|
salesforceSettings: require("./endpoints/accounts/salesforce-settings.js")({client, internalAuthTokenProvider}),
|
|
230
230
|
shifts: require("./endpoints/accounts/shifts.js")({client, internalAuthTokenProvider}),
|
|
231
231
|
shiftSettings: require("./endpoints/accounts/shift-settings.js")({client, internalAuthTokenProvider}),
|
|
232
|
+
systemModelSettings: require("./endpoints/accounts/system-model-settings.js")({client, internalAuthTokenProvider}),
|
|
232
233
|
ticketMovementSettings: require("./endpoints/accounts/ticket-movement-settings.js")({client, internalAuthTokenProvider}),
|
|
233
234
|
tokens: require("./endpoints/accounts/tokens.js")({client, internalAuthTokenProvider}),
|
|
234
235
|
travellers: require("./endpoints/accounts/travellers.js")({
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
const {
|
|
2
|
+
authorizationHeaders
|
|
3
|
+
} = require("./../endpoints_helpers.js");
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Factory for system-model-settings API (btrz-api-accounts). Requires BETTEREZ_APP audience.
|
|
7
|
+
* @param {Object} deps
|
|
8
|
+
* @param {import("axios").AxiosInstance} deps.client
|
|
9
|
+
* @param {{ getToken: function(): string }} [deps.internalAuthTokenProvider]
|
|
10
|
+
* @returns {{ get: function, update: function }}
|
|
11
|
+
*/
|
|
12
|
+
function systemModelSettingsFactory({client, internalAuthTokenProvider}) {
|
|
13
|
+
/**
|
|
14
|
+
* GET /system-models/:modelName/settings – required-field settings for a system model.
|
|
15
|
+
* @param {Object} opts
|
|
16
|
+
* @param {string} opts.modelName - System model
|
|
17
|
+
* @param {string} [opts.token] - API key
|
|
18
|
+
* @param {string} [opts.jwtToken] - JWT or internal auth symbol
|
|
19
|
+
* @param {Object} [opts.headers] - Optional headers
|
|
20
|
+
* @returns {Promise<import("axios").AxiosResponse<{ systemModelSettings: object }>>}
|
|
21
|
+
*/
|
|
22
|
+
function get({token, jwtToken, modelName, headers}) {
|
|
23
|
+
return client({
|
|
24
|
+
url: `/system-models/${modelName}/settings`,
|
|
25
|
+
headers: authorizationHeaders({token, jwtToken, internalAuthTokenProvider, headers})
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* PUT /system-models/:modelName/settings – create or update required-field settings.
|
|
31
|
+
* @param {Object} opts
|
|
32
|
+
* @param {string} opts.modelName - System model
|
|
33
|
+
* @param {string} [opts.token] - API key
|
|
34
|
+
* @param {string} [opts.jwtToken] - JWT or internal auth symbol
|
|
35
|
+
* @param {Object} opts.systemModelSettings - Payload (requiredFields, etc.)
|
|
36
|
+
* @param {Object} [opts.headers] - Optional headers
|
|
37
|
+
* @returns {Promise<import("axios").AxiosResponse<{ systemModelSettings: object }>>}
|
|
38
|
+
*/
|
|
39
|
+
function update({jwtToken, token, modelName, systemModelSettings, headers}) {
|
|
40
|
+
return client({
|
|
41
|
+
url: `/system-models/${modelName}/settings`,
|
|
42
|
+
method: "put",
|
|
43
|
+
headers: authorizationHeaders({
|
|
44
|
+
token, jwtToken, internalAuthTokenProvider, headers
|
|
45
|
+
}),
|
|
46
|
+
data: {
|
|
47
|
+
systemModelSettings
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
return {
|
|
53
|
+
get,
|
|
54
|
+
update
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
module.exports = systemModelSettingsFactory;
|
|
@@ -4,6 +4,7 @@ const {authorizationHeaders} = require("./../endpoints_helpers.js");
|
|
|
4
4
|
* Query params for GET /countries (btrz-api-inventory). See get-countries getSpec().
|
|
5
5
|
* @typedef {Object} CountriesListQuery
|
|
6
6
|
* @property {string} [isoCode] - Country 2- or 3-letter ISO code (must be 2 or 3 chars if provided)
|
|
7
|
+
* @property {"name"|"ord"} [sortBy] - Sort: `name` (default) by country name ascending; `ord` by display order then name
|
|
7
8
|
*/
|
|
8
9
|
|
|
9
10
|
/**
|
|
@@ -22,11 +23,11 @@ const {authorizationHeaders} = require("./../endpoints_helpers.js");
|
|
|
22
23
|
*/
|
|
23
24
|
function countriesFactory({client, internalAuthTokenProvider}) {
|
|
24
25
|
/**
|
|
25
|
-
* GET /countries — List countries. Optional filter by isoCode (2 or 3 characters).
|
|
26
|
+
* GET /countries — List countries. Optional filter by isoCode (2 or 3 characters) and sortBy.
|
|
26
27
|
* @param {Object} opts
|
|
27
28
|
* @param {string} [opts.token] - API key
|
|
28
29
|
* @param {string} [opts.jwtToken] - JWT or internal auth
|
|
29
|
-
* @param {CountriesListQuery} [opts.query] - Query params (isoCode)
|
|
30
|
+
* @param {CountriesListQuery} [opts.query] - Query params (isoCode, sortBy)
|
|
30
31
|
* @param {Object} [opts.headers] - Optional headers
|
|
31
32
|
* @returns {Promise<import("axios").AxiosResponse<{ countries: Object[] }>>}
|
|
32
33
|
* @throws 400 Validation failure (e.g. invalid isoCode length)
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
const {
|
|
2
|
+
axiosMock, expectRequest
|
|
3
|
+
} = require("./../../test-helpers.js");
|
|
4
|
+
const api = require("./../../../src/client.js").createApiClient({baseURL: "http://test.com"});
|
|
5
|
+
|
|
6
|
+
describe("accounts/system-model-settings", () => {
|
|
7
|
+
const token = "I owe you a token";
|
|
8
|
+
const jwtToken = "I owe you a JWT token";
|
|
9
|
+
const modelName = "station";
|
|
10
|
+
|
|
11
|
+
afterEach(() => {
|
|
12
|
+
axiosMock.reset();
|
|
13
|
+
});
|
|
14
|
+
|
|
15
|
+
it("should update system model settings", () => {
|
|
16
|
+
const path = `/system-models/${modelName}/settings`;
|
|
17
|
+
axiosMock.onPut(path).reply(expectRequest({statusCode: 200, token, jwtToken}));
|
|
18
|
+
return api.accounts.systemModelSettings.update({
|
|
19
|
+
jwtToken,
|
|
20
|
+
token,
|
|
21
|
+
modelName,
|
|
22
|
+
systemModelSettings: {
|
|
23
|
+
requiredFields: []
|
|
24
|
+
}
|
|
25
|
+
});
|
|
26
|
+
});
|
|
27
|
+
|
|
28
|
+
it("should get system model settings", () => {
|
|
29
|
+
const path = `/system-models/${modelName}/settings`;
|
|
30
|
+
axiosMock.onGet(path).reply(expectRequest({statusCode: 200, token, jwtToken}));
|
|
31
|
+
return api.accounts.systemModelSettings.get({
|
|
32
|
+
jwtToken,
|
|
33
|
+
token,
|
|
34
|
+
modelName
|
|
35
|
+
});
|
|
36
|
+
});
|
|
37
|
+
});
|
|
@@ -14,6 +14,12 @@ describe("inventory/countries", () => {
|
|
|
14
14
|
return api.inventory.countries.all({token});
|
|
15
15
|
});
|
|
16
16
|
|
|
17
|
+
it("should list countries with query params (e.g. sortBy)", () => {
|
|
18
|
+
const query = {sortBy: "ord"};
|
|
19
|
+
axiosMock.onGet("/countries").reply(expectRequest({statusCode: 200, token, query}));
|
|
20
|
+
return api.inventory.countries.all({token, query});
|
|
21
|
+
});
|
|
22
|
+
|
|
17
23
|
it("should get a country by id", () => {
|
|
18
24
|
const countryId = "countryId";
|
|
19
25
|
axiosMock.onGet(`/countries/${countryId}`).reply(expectRequest({statusCode: 200, token, jwtToken}));
|