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.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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "btrz-api-client",
3
- "version": "8.51.0",
3
+ "version": "8.53.0",
4
4
  "description": "Api client for Betterez endpoints",
5
5
  "main": "index.js",
6
6
  "scripts": {
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}));