@getjones/test-infra 2.1.4 → 2.2.1

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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@getjones/test-infra",
3
- "version": "2.1.4",
3
+ "version": "2.2.1",
4
4
  "description": "Providing internal and openapi interface",
5
5
  "main": "src/index.js",
6
6
  "scripts": {
@@ -8,8 +8,8 @@ const Endpoints = {
8
8
  delete: requirementId => `${backendUrl}/saas/requirement/${requirementId}`
9
9
  };
10
10
 
11
- const createRequirement = (createRequirementModel, context, params) => {
12
- return requests.postRequestHandler(Endpoints.create, createRequirementModel, context, {}, params);
11
+ const createRequirement = (createRequirementModel, context) => {
12
+ return requests.postRequestHandler(Endpoints.create, createRequirementModel, context);
13
13
  };
14
14
 
15
15
  const getRequirementsByTabId = (tabId, context) => {
@@ -1,11 +1,12 @@
1
1
  const requirementsAPI = require('./requirements.api');
2
2
  const { CreateRequirementModel } = require('../models/create.requirement.model');
3
+ const requirementUtils = require('../utils/utils');
4
+
3
5
  const { validateType } = require('../../../../common/validations/typeValidations');
4
6
 
5
7
  const createRequirement = (createRequirementModel, context) => {
6
8
  validateType(createRequirementModel, CreateRequirementModel);
7
- const params = { 'leaseId': '' };
8
- return requirementsAPI.createRequirement(createRequirementModel, context, params);
9
+ return requirementsAPI.createRequirement(createRequirementModel, context);
9
10
  };
10
11
 
11
12
  const getRequirementsByTabId = (tabId, context) => {
@@ -16,8 +17,58 @@ const getRequirementById = (requirementId, context) => {
16
17
  return requirementsAPI.getRequirementById(requirementId, context);
17
18
  };
18
19
 
20
+ const getRequirementByName = async (tabId, requirementName, context) => {
21
+ const { data: requirementList } = await getRequirementsByTabId(tabId, context);
22
+
23
+ const requirement = requirementList.find(req => req.name === requirementName);
24
+
25
+ if (!requirement) {
26
+ return null;
27
+ }
28
+
29
+ const requirementResponse = await getRequirementById(requirement.id, context);
30
+ return requirementResponse.data.requirement;
31
+ };
32
+
33
+ const getRequirementIdByName = async (tabId, requirementName, context) => {
34
+ const requirement = await getRequirementByName(tabId, requirementName, context);
35
+ return requirement ? requirement.id : requirement;
36
+ };
37
+
38
+ const getOrCreateRequirement = async (accountId, requirement, context, projectId, tabId) => {
39
+ let existingRequirement = await getRequirementByName(tabId, requirement.name, context);
40
+
41
+ if (!existingRequirement) {
42
+ const createRequirementModel = getCreateRequirementModel(requirement.policies, requirement.name, accountId, projectId, tabId);
43
+ await createRequirement(createRequirementModel, context);
44
+ existingRequirement = await getRequirementByName(tabId, requirement.name, context);
45
+ }
46
+
47
+ return existingRequirement;
48
+ };
49
+
19
50
  const deleteByRequirementId = (requirementId, context) => {
20
51
  return requirementsAPI.deleteByRequirementId(requirementId, context);
21
52
  };
22
53
 
23
- module.exports = { createRequirement, getRequirementsByTabId, deleteByRequirementId, getRequirementById };
54
+ const deleteRequirementByName = async (requirementName, tabId, context) => {
55
+ const requirementToDelete = await getRequirementByName(tabId, requirementName, context);
56
+ return deleteByRequirementId(requirementToDelete.id, context);
57
+ };
58
+
59
+ const getCreateRequirementModel = (requirementConfig, requirementName, accountId, projectId, tabId) => {
60
+ return requirementUtils.getCreateRequirementModel(requirementConfig, requirementName, accountId, projectId, tabId);
61
+ };
62
+
63
+ module.exports = {
64
+ createRequirement,
65
+ getRequirementById,
66
+ getRequirementByName,
67
+ getRequirementIdByName,
68
+ getRequirementsByTabId,
69
+ getOrCreateRequirement,
70
+ deleteByRequirementId,
71
+ deleteRequirementByName,
72
+
73
+ getCreateRequirementModel
74
+ };
@@ -17,7 +17,7 @@ const preparePolicyAttributesTypes = function(value) {
17
17
  return models.AttributeTypes.get(attributeTypes.limit);
18
18
  }
19
19
 
20
- if (dataTypeUtils.isValueOfABoolenType(attributesValue)) {
20
+ if (dataTypeUtils.isBoolean(attributesValue)) {
21
21
  return models.AttributeTypes.get(attributeTypes.boolean);
22
22
  }
23
23
 
@@ -25,7 +25,7 @@ const preparePolicyAttributesTypes = function(value) {
25
25
  };
26
26
 
27
27
  const prepareEndorsmentAttributesTypes = function(value) {
28
- if (dataTypeUtils.isValueOfABoolenType(value)) {
28
+ if (dataTypeUtils.isBoolean(value)) {
29
29
  return models.AttributeTypes.get(attributeTypes.boolean);
30
30
  }
31
31