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.
- package/lib/client-standalone-min.js +3 -3
- package/lib/endpoints/accounts/system-model-settings.js +35 -2
- package/lib/endpoints/inventory/document-types.js +16 -1
- package/package.json +1 -1
- package/src/endpoints/accounts/system-model-settings.js +28 -2
- package/src/endpoints/inventory/document-types.js +11 -1
- package/test/endpoints/accounts/system-model-settings.test.js +12 -0
- package/test/endpoints/inventory/document-types.test.js +17 -0
|
@@ -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
|
-
|
|
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
|
@@ -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
|
});
|