@getjones/test-infra 2.9.9 → 2.9.11

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.9.9",
3
+ "version": "2.9.11",
4
4
  "description": "Providing internal and openapi interface",
5
5
  "main": "src/index.js",
6
6
  "scripts": {
package/src/index.js CHANGED
@@ -78,7 +78,8 @@ const getOpenAPI = () => {
78
78
  const requirements = require('./saas/openapi/requirements');
79
79
  const requests = require('./saas/openapi/requests');
80
80
  const coi = require('./saas/openapi/coi/coi.service');
81
- const openAPI = { accounts, projects, tabs, requirements, requests, coi };
81
+ const users = require('./saas/openapi/users/users.service');
82
+ const openAPI = { accounts, projects, tabs, requirements, requests, coi, users };
82
83
  return openAPI;
83
84
  };
84
85
 
Binary file
@@ -1,6 +1,6 @@
1
1
  const { InviteUserModel, SignupUserModel, EditUserModel, EditUserProfileModel } = require('../models/users.model');
2
2
  const { validateType } = require('../../../../common/validations/typeValidations');
3
- const { getEnv } = require('../../../../env');
3
+ const { getEnv, getSystemUserIdentity } = require('../../../../env');
4
4
  const { credentials } = getEnv();
5
5
  const userAPI = require('./users.api');
6
6
  const util = require('../utils/util');
@@ -147,31 +147,33 @@ const sendForgetPasswordMail = userEmail => {
147
147
  return userAPI.sendForgetPasswordMail(userEmail);
148
148
  };
149
149
 
150
- const editUserProfile = async (email, fullName, context) => {
151
- const { data: user } = await getUserByEmail(email, context);
150
+ const editUserProfile = async (email, fullName, userContext) => {
151
+ const systemUserContext = await getSystemUserIdentity(credentials.superUser).cookie;
152
+ const { data: user } = await getUserByEmail(email, systemUserContext);
152
153
 
153
154
  const editUserProfileModel = new EditUserProfileModel(user.id, email, user.role, fullName);
154
155
 
155
- const response = await userAPI.editUserProfile(editUserProfileModel, context);
156
+ const response = await userAPI.editUserProfile(editUserProfileModel, userContext);
156
157
 
157
158
  if (response.status !== httpResponseStatusCodes.OK) {
158
159
  throw Error(`Failed to edit user id: [${user.id}] profile\n${response}`);
159
160
  }
160
161
 
161
- return getUserByEmail(email, context);
162
+ return getUserByEmail(email, systemUserContext);
162
163
  };
163
164
 
164
- const editUserSettings = async (email, config, context) => {
165
- const { data: user } = await getUserByEmail(email, context);
166
- const settingModel = util.getSettingsModel(config);
165
+ const editUserSettings = async (email, config, userContext) => {
166
+ const systemUserContext = await getSystemUserIdentity(credentials.superUser).cookie;
167
+ const { data: user } = await getUserByEmail(email, systemUserContext);
167
168
 
168
- const response = await userAPI.editUserEmailNotificationsSettings(user.id, settingModel, context);
169
+ const settingModel = util.getSettingsModel(config);
170
+ const response = await userAPI.editUserEmailNotificationsSettings(user.id, settingModel, userContext);
169
171
 
170
172
  if (response.status !== httpResponseStatusCodes.OK) {
171
173
  throw Error(`Failed to edit user id: [${user.id}] settings\n${response}`);
172
174
  }
173
175
 
174
- return getUserByEmail(email, context);
176
+ return getUserByEmail(email, systemUserContext);
175
177
  };
176
178
 
177
179
  module.exports = {
@@ -0,0 +1,10 @@
1
+ class ApiUserModel {
2
+ constructor(user = {}) {
3
+ this.fullName = user.fullName;
4
+ this.email = user.email;
5
+ this.role = user.role;
6
+ this.properties = user.properties;
7
+ }
8
+ }
9
+
10
+ module.exports = { ApiUserModel };
@@ -0,0 +1,33 @@
1
+ const requests = require('../../../common/requests/apiKeyAuth/requests');
2
+ const { openapiUrl } = require('../../../env').getEnv();
3
+
4
+ const Endpoints = {
5
+ createUser: `${openapiUrl}/users`,
6
+ updateUser: userId => `${openapiUrl}/users/${userId}`,
7
+ deleteUser: userId => `${openapiUrl}/users/${userId}`,
8
+ getUser: `${openapiUrl}/users`,
9
+ getAllUsers: `${openapiUrl}/users/all`
10
+
11
+ };
12
+
13
+ const createUser = async (apiKey, user) => {
14
+ return requests.postRequestHandler(Endpoints.createUser, apiKey, user).then(res => res);
15
+ };
16
+
17
+ const updateUser = async (apiKey, user, userId) => {
18
+ return requests.patchRequestHandler(Endpoints.updateUser(userId), apiKey, user).then(res => res);
19
+ };
20
+
21
+ const deleteUser = async (apiKey, userId) => {
22
+ return requests.deleteRequestHandler(Endpoints.deleteUser(userId), apiKey).then(res => res);
23
+ };
24
+
25
+ const getUser = async (apiKey, params) => {
26
+ return requests.getRequestHandler(Endpoints.getUser, apiKey, params).then(res => res);
27
+ };
28
+
29
+ const getAllUsers = async (apiKey, params) => {
30
+ return requests.getRequestHandler(Endpoints.getAllUsers, apiKey, params).then(res => res);
31
+ };
32
+
33
+ module.exports = { createUser, updateUser, deleteUser, getUser, getAllUsers };
@@ -0,0 +1,41 @@
1
+ const { validateType } = require('../../../common/validations/typeValidations');
2
+ const { ApiUserModel } = require('./user.model');
3
+ const usersApi = require('./users.api');
4
+ const httpResponseStatusCodes = require('../../../common/httpResponseStatusCodes.json');
5
+
6
+ const createUser = async (apiKey, user) => {
7
+ validateType(user, ApiUserModel);
8
+ const response = await usersApi.createUser(apiKey, user);
9
+ validateResponse(response, httpResponseStatusCodes.OK, 'Create user has failed');
10
+ return response.data;
11
+ };
12
+
13
+ const updateUser = async (apiKey, user, userId) => {
14
+ const response = await usersApi.updateUser(apiKey, user, userId);
15
+ validateResponse(response, httpResponseStatusCodes.OK, 'Update user has failed');
16
+ return response.data;
17
+ };
18
+
19
+ const deleteUser = async (apiKey, userId) => {
20
+ const response = await usersApi.deleteUser(apiKey, userId);
21
+ validateResponse(response, httpResponseStatusCodes.OK, 'Delete user has failed');
22
+ return response.data;
23
+ };
24
+
25
+ const getUserByEmailId = async (apiKey, email) => {
26
+ const response = await usersApi.getUser(apiKey, { email });
27
+ return response;
28
+ };
29
+
30
+ const getAllUsers = async (apiKey, { before, after, propertyId } = {}) => {
31
+ const response = await usersApi.getAllUsers(apiKey, { before, after, propertyId });
32
+ return response;
33
+ };
34
+
35
+ const validateResponse = (response, expectedStatus, errorMessage) => {
36
+ if (response.status !== expectedStatus) {
37
+ throw new Error(`${errorMessage}\n${JSON.stringify(response.status)}`);
38
+ }
39
+ };
40
+
41
+ module.exports = { createUser, updateUser, deleteUser, getUserByEmailId, getAllUsers };