btrz-api-client 8.54.0 → 8.56.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.
@@ -8,7 +8,7 @@ var _require = require("./../endpoints_helpers.js"),
8
8
  * @param {Object} deps
9
9
  * @param {import("axios").AxiosInstance} deps.client
10
10
  * @param {{ getToken: function(): string }} [deps.internalAuthTokenProvider]
11
- * @returns {{ get: function, update: function }}
11
+ * @returns {{ get: function, update: function, validate: function }}
12
12
  */
13
13
 
14
14
 
@@ -66,9 +66,42 @@ function systemModelSettingsFactory(_ref) {
66
66
  });
67
67
  }
68
68
 
69
+ /**
70
+ * POST /system-models/:modelName/validations – validate a payload against stored required-field rules.
71
+ * @param {Object} opts
72
+ * @param {string} opts.modelName - System model
73
+ * @param {string} opts.action - Operation context; rules that include this action are enforced against payload.
74
+ * @param {Object} opts.payload - Payload to validate (e.g. the body you would send to create or update the model).
75
+ * @param {string} [opts.token] - API key
76
+ * @param {string} [opts.jwtToken] - JWT or internal auth symbol
77
+ * @param {Object} [opts.headers] - Optional headers
78
+ * @returns {Promise<import("axios").AxiosResponse<{ valid: boolean, code?: string, message?: string }>>}
79
+ */
80
+ function validate(_ref4) {
81
+ var jwtToken = _ref4.jwtToken,
82
+ token = _ref4.token,
83
+ modelName = _ref4.modelName,
84
+ action = _ref4.action,
85
+ payload = _ref4.payload,
86
+ headers = _ref4.headers;
87
+
88
+ return client({
89
+ url: "/system-models/" + modelName + "/validations",
90
+ method: "post",
91
+ headers: authorizationHeaders({
92
+ token: token, jwtToken: jwtToken, internalAuthTokenProvider: internalAuthTokenProvider, headers: headers
93
+ }),
94
+ data: {
95
+ action: action,
96
+ payload: payload
97
+ }
98
+ });
99
+ }
100
+
69
101
  return {
70
102
  get: get,
71
- update: update
103
+ update: update,
104
+ validate: validate
72
105
  };
73
106
  }
74
107
 
@@ -1,5 +1,7 @@
1
1
  "use strict";
2
2
 
3
+ var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
4
+
3
5
  var _require = require("./../endpoints_helpers.js"),
4
6
  authorizationHeaders = _require.authorizationHeaders;
5
7
 
@@ -9,6 +11,12 @@ var _require = require("./../endpoints_helpers.js"),
9
11
  * @property {string} [providerIds] - Comma-separated provider IDs to get document types for
10
12
  */
11
13
 
14
+ /**
15
+ * Query params for GET /document-types/:documenttypeId (btrz-api-inventory). See get-by-id-handler getSpec().
16
+ * @typedef {Object} DocumentTypeGetByIdQuery
17
+ * @property {string} [providerId] - When passed via opts.providerId it is merged here (same pattern as people-lookups / dynamic-forms)
18
+ */
19
+
12
20
  /**
13
21
  * Factory for document-types API (btrz-api-inventory).
14
22
  * @param {Object} deps
@@ -53,6 +61,8 @@ function documentTypesFactory(_ref) {
53
61
  * @param {string} [opts.token] - API key
54
62
  * @param {string} [opts.jwtToken] - JWT or internal auth symbol
55
63
  * @param {string} opts.id - Document type id (24 hex characters)
64
+ * @param {DocumentTypeGetByIdQuery} [opts.query] - Optional query params (merged with providerId when opts.providerId is set)
65
+ * @param {string} [opts.providerId] - Provider id (ObjectId); merged into query for provider context (same as peopleLookups.getById / dynamicForms.get)
56
66
  * @param {Object} [opts.headers] - Optional headers
57
67
  * @returns {Promise<import("axios").AxiosResponse<{ documenttype: Object }>>}
58
68
  * @throws When response is 4xx/5xx (400, 401, 404 DOCUMENTTYPE_NOT_FOUND, 500)
@@ -61,11 +71,16 @@ function documentTypesFactory(_ref) {
61
71
  var token = _ref3.token,
62
72
  jwtToken = _ref3.jwtToken,
63
73
  id = _ref3.id,
64
- headers = _ref3.headers;
74
+ _ref3$query = _ref3.query,
75
+ query = _ref3$query === undefined ? {} : _ref3$query,
76
+ headers = _ref3.headers,
77
+ providerId = _ref3.providerId;
65
78
 
79
+ var query_ = providerId ? _extends({}, query, { providerId: providerId }) : query;
66
80
  return client({
67
81
  url: "/document-types/" + id,
68
82
  method: "get",
83
+ params: query_,
69
84
  headers: authorizationHeaders({ token: token, jwtToken: jwtToken, internalAuthTokenProvider: internalAuthTokenProvider, headers: headers })
70
85
  });
71
86
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "btrz-api-client",
3
- "version": "8.54.0",
3
+ "version": "8.56.0",
4
4
  "description": "Api client for Betterez endpoints",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -7,7 +7,7 @@ const {
7
7
  * @param {Object} deps
8
8
  * @param {import("axios").AxiosInstance} deps.client
9
9
  * @param {{ getToken: function(): string }} [deps.internalAuthTokenProvider]
10
- * @returns {{ get: function, update: function }}
10
+ * @returns {{ get: function, update: function, validate: function }}
11
11
  */
12
12
  function systemModelSettingsFactory({client, internalAuthTokenProvider}) {
13
13
  /**
@@ -49,9 +49,35 @@ function systemModelSettingsFactory({client, internalAuthTokenProvider}) {
49
49
  });
50
50
  }
51
51
 
52
+ /**
53
+ * POST /system-models/:modelName/validations – validate a payload against stored required-field rules.
54
+ * @param {Object} opts
55
+ * @param {string} opts.modelName - System model
56
+ * @param {string} opts.action - Operation context; rules that include this action are enforced against payload.
57
+ * @param {Object} opts.payload - Payload to validate (e.g. the body you would send to create or update the model).
58
+ * @param {string} [opts.token] - API key
59
+ * @param {string} [opts.jwtToken] - JWT or internal auth symbol
60
+ * @param {Object} [opts.headers] - Optional headers
61
+ * @returns {Promise<import("axios").AxiosResponse<{ valid: boolean, code?: string, message?: string }>>}
62
+ */
63
+ function validate({jwtToken, token, modelName, action, payload, headers}) {
64
+ return client({
65
+ url: `/system-models/${modelName}/validations`,
66
+ method: "post",
67
+ headers: authorizationHeaders({
68
+ token, jwtToken, internalAuthTokenProvider, headers
69
+ }),
70
+ data: {
71
+ action,
72
+ payload
73
+ }
74
+ });
75
+ }
76
+
52
77
  return {
53
78
  get,
54
- update
79
+ update,
80
+ validate
55
81
  };
56
82
  }
57
83
 
@@ -6,6 +6,12 @@ const {authorizationHeaders} = require("./../endpoints_helpers.js");
6
6
  * @property {string} [providerIds] - Comma-separated provider IDs to get document types for
7
7
  */
8
8
 
9
+ /**
10
+ * Query params for GET /document-types/:documenttypeId (btrz-api-inventory). See get-by-id-handler getSpec().
11
+ * @typedef {Object} DocumentTypeGetByIdQuery
12
+ * @property {string} [providerId] - When passed via opts.providerId it is merged here (same pattern as people-lookups / dynamic-forms)
13
+ */
14
+
9
15
  /**
10
16
  * Factory for document-types API (btrz-api-inventory).
11
17
  * @param {Object} deps
@@ -39,14 +45,18 @@ function documentTypesFactory({client, internalAuthTokenProvider}) {
39
45
  * @param {string} [opts.token] - API key
40
46
  * @param {string} [opts.jwtToken] - JWT or internal auth symbol
41
47
  * @param {string} opts.id - Document type id (24 hex characters)
48
+ * @param {DocumentTypeGetByIdQuery} [opts.query] - Optional query params (merged with providerId when opts.providerId is set)
49
+ * @param {string} [opts.providerId] - Provider id (ObjectId); merged into query for provider context (same as peopleLookups.getById / dynamicForms.get)
42
50
  * @param {Object} [opts.headers] - Optional headers
43
51
  * @returns {Promise<import("axios").AxiosResponse<{ documenttype: Object }>>}
44
52
  * @throws When response is 4xx/5xx (400, 401, 404 DOCUMENTTYPE_NOT_FOUND, 500)
45
53
  */
46
- function get({token, jwtToken, id, headers}) {
54
+ function get({token, jwtToken, id, query = {}, headers, providerId}) {
55
+ const query_ = providerId ? {...query, providerId} : query;
47
56
  return client({
48
57
  url: `/document-types/${id}`,
49
58
  method: "get",
59
+ params: query_,
50
60
  headers: authorizationHeaders({token, jwtToken, internalAuthTokenProvider, headers})
51
61
  });
52
62
  }
@@ -34,4 +34,16 @@ describe("accounts/system-model-settings", () => {
34
34
  modelName
35
35
  });
36
36
  });
37
+
38
+ it("should post system model validations", () => {
39
+ const path = `/system-models/${modelName}/validations`;
40
+ axiosMock.onPost(path).reply(expectRequest({statusCode: 200, token, jwtToken}));
41
+ return api.accounts.systemModelSettings.validate({
42
+ jwtToken,
43
+ token,
44
+ modelName,
45
+ action: "create",
46
+ payload: {name: "X"}
47
+ });
48
+ });
37
49
  });
@@ -37,4 +37,21 @@ describe("inventory/document-types", () => {
37
37
  axiosMock.onPut(`/document-types/${documentTypesId}`).reply(expectRequest({statusCode: 200, token, jwtToken}));
38
38
  return api.inventory.documentTypes.update({jwtToken, token, id: documentTypesId, data});
39
39
  });
40
+
41
+ it("should get a document-type by id without providerId query", () => {
42
+ const documentTypesId = "507f1f77bcf86cd799439011";
43
+ const params = {};
44
+ axiosMock.onGet(`/document-types/${documentTypesId}`, {params})
45
+ .reply(expectRequest({statusCode: 200, token, jwtToken, query: params}));
46
+ return api.inventory.documentTypes.get({token, jwtToken, id: documentTypesId});
47
+ });
48
+
49
+ it("should get a document-type by id with providerId in query params", () => {
50
+ const documentTypesId = "507f1f77bcf86cd799439011";
51
+ const providerId = "6750984c6d6aac054165fd9a";
52
+ const params = {providerId};
53
+ axiosMock.onGet(`/document-types/${documentTypesId}`, {params})
54
+ .reply(expectRequest({statusCode: 200, token, jwtToken, query: params}));
55
+ return api.inventory.documentTypes.get({token, jwtToken, id: documentTypesId, providerId});
56
+ });
40
57
  });