@getjones/test-infra 1.0.12 → 1.0.13
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/package.json +5 -4
- package/src/index.js +10 -1
- package/src/internal-api/common/requests.js +2 -2
- package/src/internal-api/common/validations.js +7 -0
- package/src/internal-api/contractors/api/contractors.api.js +22 -0
- package/src/internal-api/contractors/api/contractors.setup.js +18 -0
- package/src/internal-api/contractors/index.js +6 -0
- package/src/internal-api/contractors/models/create.contractor.model.js +20 -0
- package/src/internal-api/requirements/api/requirements.api.js +24 -0
- package/src/internal-api/requirements/api/requirements.setup.js +19 -0
- package/src/internal-api/requirements/index.js +6 -0
- package/src/internal-api/requirements/models/create.requirement.model.js +46 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@getjones/test-infra",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.13",
|
|
4
4
|
"description": "Providing internal and openapi interface",
|
|
5
5
|
"main": "src/index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -10,10 +10,11 @@
|
|
|
10
10
|
"license": "ISC",
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"axios": "^0.21.1",
|
|
13
|
-
"dotenv": "^8.2.0",
|
|
14
|
-
"mocha": "^8.3.2",
|
|
15
13
|
"chai": "^4.3.4",
|
|
16
|
-
"
|
|
14
|
+
"dotenv": "^8.2.0",
|
|
15
|
+
"enum": "^3.0.4",
|
|
16
|
+
"http-status-code": "^2.1.0",
|
|
17
|
+
"mocha": "^8.3.2"
|
|
17
18
|
},
|
|
18
19
|
"devDependencies": {
|
|
19
20
|
"eslint": "^7.22.0",
|
package/src/index.js
CHANGED
|
@@ -11,6 +11,8 @@ const init = conf => {
|
|
|
11
11
|
|
|
12
12
|
const projects = require('./internal-api/projects/projects.setup');
|
|
13
13
|
const tabs = require('./internal-api/tabs/tabs.setup');
|
|
14
|
+
const requirements = require('./internal-api/requirements');
|
|
15
|
+
const contractors = require('./internal-api/contractors');
|
|
14
16
|
|
|
15
17
|
const accounts = {
|
|
16
18
|
core: accountsCore,
|
|
@@ -21,7 +23,14 @@ const init = conf => {
|
|
|
21
23
|
accountsOpenAPI
|
|
22
24
|
};
|
|
23
25
|
|
|
24
|
-
const internalAPI = {
|
|
26
|
+
const internalAPI = {
|
|
27
|
+
auth,
|
|
28
|
+
accounts,
|
|
29
|
+
projects,
|
|
30
|
+
tabs,
|
|
31
|
+
requirements,
|
|
32
|
+
contractors
|
|
33
|
+
};
|
|
25
34
|
return { internalAPI };
|
|
26
35
|
};
|
|
27
36
|
|
|
@@ -12,10 +12,10 @@ const getRequestHandler = async (url, params = {}, context = null, headers = {})
|
|
|
12
12
|
|
|
13
13
|
};
|
|
14
14
|
|
|
15
|
-
const postRequestHandler = async (url, body, context = null, headers = {}) => {
|
|
15
|
+
const postRequestHandler = async (url, body, context = null, headers = {}, params = {}) => {
|
|
16
16
|
enrichCookie(headers, context);
|
|
17
17
|
try {
|
|
18
|
-
const response = await axios.post(url, body, { headers });
|
|
18
|
+
const response = await axios.post(url, body, { headers, params });
|
|
19
19
|
return response;
|
|
20
20
|
} catch (error) {
|
|
21
21
|
const message = error.response.data && JSON.stringify(error.response.data) || error.message;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
const requests = require('../../common/requests');
|
|
2
|
+
const { backendUrl } = require('../../../env').getEnv();
|
|
3
|
+
|
|
4
|
+
const Endpoints = {
|
|
5
|
+
create: `${backendUrl}/saas/contractors/invite`,
|
|
6
|
+
get: `${backendUrl}/saas/contractors`,
|
|
7
|
+
delete: contractorId => `${backendUrl}/saas/contractor/${contractorId}`,
|
|
8
|
+
};
|
|
9
|
+
|
|
10
|
+
const createContractors = async (createContractorModel, context) => {
|
|
11
|
+
return requests.postRequestHandler(Endpoints.create, createContractorModel, context).then(res => res.data);
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
const getContractorsByAccountId = async (params, context) => {
|
|
15
|
+
return requests.getRequestHandler(Endpoints.get, params, context).then(res => res.data);
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
const deleteByContractorId = async (contractorId, context) => {
|
|
19
|
+
return requests.deleteRequestHandler(Endpoints.delete(contractorId), context);
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
module.exports = { createContractors, getContractorsByAccountId, deleteByContractorId };
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
const contractorsAPI = require('./contractors.api');
|
|
2
|
+
const { CreateContractorModel } = require('../models/create.contractor.model');
|
|
3
|
+
const { validateType } = require('../../common/validations');
|
|
4
|
+
|
|
5
|
+
const createContractors = async (createContractorsModel, context) => {
|
|
6
|
+
validateType(createContractorsModel, CreateContractorModel);
|
|
7
|
+
return contractorsAPI.createContractors(createContractorsModel, context);
|
|
8
|
+
};
|
|
9
|
+
|
|
10
|
+
const getContractorsByAccountId = async (accountId, context) => {
|
|
11
|
+
return contractorsAPI.getContractorsByAccountId({ accountId }, context);
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
const deleteByContractorId = (contractorId, context) => {
|
|
15
|
+
return contractorsAPI.deleteByContractorId(contractorId, context);
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
module.exports = { createContractors, getContractorsByAccountId, deleteByContractorId };
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
const { validateType } = require('../../common/validations');
|
|
2
|
+
|
|
3
|
+
function CreateContractorModel(requirementId, inviterEmail, vendorsInfo) {
|
|
4
|
+
this.reqId = requirementId;
|
|
5
|
+
this.inviterEmail = inviterEmail;
|
|
6
|
+
this.vendorInfo = vendorsInfo;
|
|
7
|
+
this.disableMail = true;
|
|
8
|
+
this.sendCovid19Form = false;
|
|
9
|
+
|
|
10
|
+
validateType(vendorsInfo, Array);
|
|
11
|
+
vendorsInfo && validateType(vendorsInfo[0], ContractorInfo);
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
function ContractorInfo(email, companyName) {
|
|
15
|
+
this.email = email;
|
|
16
|
+
this.companyName = companyName;
|
|
17
|
+
this.title = email;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
module.exports = { CreateContractorModel, ContractorInfo };
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
const requests = require('../../common/requests');
|
|
2
|
+
const { backendUrl } = require('../../../env').getEnv();
|
|
3
|
+
|
|
4
|
+
const Endpoints = {
|
|
5
|
+
create: `${backendUrl}/saas/requirement`,
|
|
6
|
+
get: `${backendUrl}/saas/requirements`,
|
|
7
|
+
delete: requirementId => `${backendUrl}/saas/requirement/${requirementId}`,
|
|
8
|
+
};
|
|
9
|
+
|
|
10
|
+
const createRequirement = async (createRequirementModel, context, params) => {
|
|
11
|
+
return requests.postRequestHandler(Endpoints.create, createRequirementModel, context, {}, params).then(
|
|
12
|
+
res => res.data
|
|
13
|
+
);
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
const getRequirementsByTabId = async (tabId, context) => {
|
|
17
|
+
return requests.getRequestHandler(Endpoints.get, { tabId }, context).then(res => res.data);
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
const deleteByRequirementId = async (requirementId, context) => {
|
|
21
|
+
return requests.deleteRequestHandler(Endpoints.delete(requirementId), context);
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
module.exports = { createRequirement, getRequirementsByTabId, deleteByRequirementId };
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
const requirementsAPI = require('./requirements.api');
|
|
2
|
+
const { CreateRequirementModel } = require('../models/create.requirement.model');
|
|
3
|
+
const { validateType } = require('../../common/validations');
|
|
4
|
+
|
|
5
|
+
const createRequirement = async (createRequirementModel, context) => {
|
|
6
|
+
validateType(createRequirementModel, CreateRequirementModel);
|
|
7
|
+
const params = { 'leaseId': '' };
|
|
8
|
+
return requirementsAPI.createRequirement(createRequirementModel, context, params);
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
const getRequirementsByTabId = async (tabId, context) => {
|
|
12
|
+
return requirementsAPI.getRequirementsByTabId(tabId, context);
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
const deleteByRequirementId = (requirementId, context) => {
|
|
16
|
+
return requirementsAPI.deleteByRequirementId(requirementId, context);
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
module.exports = { createRequirement, getRequirementsByTabId, deleteByRequirementId };
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
const Enum = require('enum');
|
|
2
|
+
const { validateType } = require('../../common/validations');
|
|
3
|
+
|
|
4
|
+
const DEFAULT_REQUIREMENT_TYPE = 'REQUIREMENT';
|
|
5
|
+
|
|
6
|
+
function CreateRequirementModel(accountId, projectId, tabId, name, policies) {
|
|
7
|
+
this.userId = accountId;
|
|
8
|
+
this.projectId = projectId;
|
|
9
|
+
this.tabId = tabId;
|
|
10
|
+
this.name = name;
|
|
11
|
+
this.policies = policies;
|
|
12
|
+
this.requirementType = DEFAULT_REQUIREMENT_TYPE;
|
|
13
|
+
|
|
14
|
+
validateType(policies, Array);
|
|
15
|
+
policies && validateType(policies[0], Policy);
|
|
16
|
+
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
function Policy(name, attributes) {
|
|
20
|
+
this.policyName = name;
|
|
21
|
+
this.attributes = attributes;
|
|
22
|
+
|
|
23
|
+
validateType(attributes, Array);
|
|
24
|
+
attributes && validateType(attributes[0], Attribute);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
function Attribute(name, type, values) {
|
|
28
|
+
this.attributeName = name;
|
|
29
|
+
this.type = type.value;
|
|
30
|
+
this.values = values.map(function(value) {
|
|
31
|
+
return { value };
|
|
32
|
+
});
|
|
33
|
+
|
|
34
|
+
if (!AttributeTypes.get(type) || !AttributeTypes.get(type.key)) {
|
|
35
|
+
throw TypeError(`Expected type to be instance of: ${AttributeTypes.name}`);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
const AttributeTypes = new Enum({
|
|
40
|
+
'ENDORSMENT': 'endorsment',
|
|
41
|
+
'LIMIT': 'limit',
|
|
42
|
+
'BOOLEAN': 'boolean',
|
|
43
|
+
'MULTIPLE': 'multiple'
|
|
44
|
+
}, { name: 'AttributeTypes' });
|
|
45
|
+
|
|
46
|
+
module.exports = { CreateRequirementModel, Policy, Attribute, AttributeTypes };
|