@stackfactor/client-api 1.1.15-8.1 → 1.1.15

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.
Files changed (304) hide show
  1. package/exports.js +71 -0
  2. package/index.js +3 -0
  3. package/lib/actionNotifications.js +82 -0
  4. package/lib/address.js +27 -0
  5. package/lib/aiAssistant.js +131 -0
  6. package/lib/axiosClient.js +85 -0
  7. package/lib/config.js +74 -0
  8. package/lib/constants.js +127 -0
  9. package/lib/dashboard.js +79 -0
  10. package/lib/departmentTrainingPlans.js +180 -0
  11. package/lib/groups.js +302 -0
  12. package/lib/integration.js +352 -0
  13. package/lib/integrationConfiguration.js +108 -0
  14. package/lib/integrations/contentGenerator.js +79 -0
  15. package/lib/learningContent.js +383 -0
  16. package/lib/learningPath.js +220 -0
  17. package/lib/logger.js +60 -0
  18. package/lib/role.js +406 -0
  19. package/lib/roleTemplate.js +258 -0
  20. package/lib/skill.js +514 -0
  21. package/lib/skillAssessmentTestingSession.js +148 -0
  22. package/lib/skillAssessments.js +145 -0
  23. package/lib/skillTemplate.js +318 -0
  24. package/lib/teams.js +294 -0
  25. package/lib/tenants.js +57 -0
  26. package/lib/trainingPlans.js +279 -0
  27. package/lib/userInformation.js +109 -0
  28. package/lib/users.js +695 -0
  29. package/lib/utils.js +48 -0
  30. package/package.json +10 -31
  31. package/declarations/axios.d.ts +0 -1
  32. package/declarations/html2plaintext.d.ts +0 -1
  33. package/dist/cjs/actionNotifications.d.ts +0 -24
  34. package/dist/cjs/actionNotifications.d.ts.map +0 -1
  35. package/dist/cjs/actionNotifications.js +0 -73
  36. package/dist/cjs/actionNotifications.js.map +0 -1
  37. package/dist/cjs/address.d.ts +0 -8
  38. package/dist/cjs/address.d.ts.map +0 -1
  39. package/dist/cjs/address.js +0 -24
  40. package/dist/cjs/address.js.map +0 -1
  41. package/dist/cjs/aiAssistant.d.ts +0 -42
  42. package/dist/cjs/aiAssistant.d.ts.map +0 -1
  43. package/dist/cjs/aiAssistant.js +0 -135
  44. package/dist/cjs/aiAssistant.js.map +0 -1
  45. package/dist/cjs/avatar.d.ts +0 -11
  46. package/dist/cjs/avatar.d.ts.map +0 -1
  47. package/dist/cjs/avatar.js +0 -32
  48. package/dist/cjs/avatar.js.map +0 -1
  49. package/dist/cjs/axiosClient.d.ts +0 -31
  50. package/dist/cjs/axiosClient.d.ts.map +0 -1
  51. package/dist/cjs/axiosClient.js +0 -126
  52. package/dist/cjs/axiosClient.js.map +0 -1
  53. package/dist/cjs/config.d.ts +0 -23
  54. package/dist/cjs/config.d.ts.map +0 -1
  55. package/dist/cjs/config.js +0 -63
  56. package/dist/cjs/config.js.map +0 -1
  57. package/dist/cjs/constants.d.ts +0 -69
  58. package/dist/cjs/constants.d.ts.map +0 -1
  59. package/dist/cjs/constants.js +0 -91
  60. package/dist/cjs/constants.js.map +0 -1
  61. package/dist/cjs/dashboard.d.ts +0 -23
  62. package/dist/cjs/dashboard.d.ts.map +0 -1
  63. package/dist/cjs/dashboard.js +0 -74
  64. package/dist/cjs/dashboard.js.map +0 -1
  65. package/dist/cjs/departmentTrainingPlans.d.ts +0 -53
  66. package/dist/cjs/departmentTrainingPlans.d.ts.map +0 -1
  67. package/dist/cjs/departmentTrainingPlans.js +0 -153
  68. package/dist/cjs/departmentTrainingPlans.js.map +0 -1
  69. package/dist/cjs/groups.d.ts +0 -90
  70. package/dist/cjs/groups.d.ts.map +0 -1
  71. package/dist/cjs/groups.js +0 -273
  72. package/dist/cjs/groups.js.map +0 -1
  73. package/dist/cjs/index.d.ts +0 -33
  74. package/dist/cjs/index.d.ts.map +0 -1
  75. package/dist/cjs/index.js +0 -77
  76. package/dist/cjs/index.js.map +0 -1
  77. package/dist/cjs/integration.d.ts +0 -82
  78. package/dist/cjs/integration.d.ts.map +0 -1
  79. package/dist/cjs/integration.js +0 -316
  80. package/dist/cjs/integration.js.map +0 -1
  81. package/dist/cjs/integrationConfiguration.d.ts +0 -27
  82. package/dist/cjs/integrationConfiguration.d.ts.map +0 -1
  83. package/dist/cjs/integrationConfiguration.js +0 -86
  84. package/dist/cjs/integrationConfiguration.js.map +0 -1
  85. package/dist/cjs/integrations/contentGenerator.d.ts +0 -22
  86. package/dist/cjs/integrations/contentGenerator.d.ts.map +0 -1
  87. package/dist/cjs/integrations/contentGenerator.js +0 -69
  88. package/dist/cjs/integrations/contentGenerator.js.map +0 -1
  89. package/dist/cjs/learningContent.d.ts +0 -153
  90. package/dist/cjs/learningContent.d.ts.map +0 -1
  91. package/dist/cjs/learningContent.js +0 -474
  92. package/dist/cjs/learningContent.js.map +0 -1
  93. package/dist/cjs/learningPath.d.ts +0 -64
  94. package/dist/cjs/learningPath.d.ts.map +0 -1
  95. package/dist/cjs/learningPath.js +0 -205
  96. package/dist/cjs/learningPath.js.map +0 -1
  97. package/dist/cjs/logger.d.ts +0 -19
  98. package/dist/cjs/logger.d.ts.map +0 -1
  99. package/dist/cjs/logger.js +0 -60
  100. package/dist/cjs/logger.js.map +0 -1
  101. package/dist/cjs/microSkillsQuizes.d.ts +0 -18
  102. package/dist/cjs/microSkillsQuizes.d.ts.map +0 -1
  103. package/dist/cjs/microSkillsQuizes.js +0 -53
  104. package/dist/cjs/microSkillsQuizes.js.map +0 -1
  105. package/dist/cjs/quotas.d.ts +0 -15
  106. package/dist/cjs/quotas.d.ts.map +0 -1
  107. package/dist/cjs/quotas.js +0 -50
  108. package/dist/cjs/quotas.js.map +0 -1
  109. package/dist/cjs/role.d.ts +0 -113
  110. package/dist/cjs/role.d.ts.map +0 -1
  111. package/dist/cjs/role.js +0 -363
  112. package/dist/cjs/role.js.map +0 -1
  113. package/dist/cjs/roleTemplate.d.ts +0 -73
  114. package/dist/cjs/roleTemplate.d.ts.map +0 -1
  115. package/dist/cjs/roleTemplate.js +0 -236
  116. package/dist/cjs/roleTemplate.js.map +0 -1
  117. package/dist/cjs/security.d.ts +0 -27
  118. package/dist/cjs/security.d.ts.map +0 -1
  119. package/dist/cjs/security.js +0 -79
  120. package/dist/cjs/security.js.map +0 -1
  121. package/dist/cjs/skill.d.ts +0 -141
  122. package/dist/cjs/skill.d.ts.map +0 -1
  123. package/dist/cjs/skill.js +0 -440
  124. package/dist/cjs/skill.js.map +0 -1
  125. package/dist/cjs/skillAssessmentTestingSession.d.ts +0 -85
  126. package/dist/cjs/skillAssessmentTestingSession.d.ts.map +0 -1
  127. package/dist/cjs/skillAssessmentTestingSession.js +0 -276
  128. package/dist/cjs/skillAssessmentTestingSession.js.map +0 -1
  129. package/dist/cjs/skillAssessments.d.ts +0 -49
  130. package/dist/cjs/skillAssessments.d.ts.map +0 -1
  131. package/dist/cjs/skillAssessments.js +0 -156
  132. package/dist/cjs/skillAssessments.js.map +0 -1
  133. package/dist/cjs/skillTemplate.d.ts +0 -87
  134. package/dist/cjs/skillTemplate.d.ts.map +0 -1
  135. package/dist/cjs/skillTemplate.js +0 -281
  136. package/dist/cjs/skillTemplate.js.map +0 -1
  137. package/dist/cjs/talentTransfromation.d.ts +0 -29
  138. package/dist/cjs/talentTransfromation.d.ts.map +0 -1
  139. package/dist/cjs/talentTransfromation.js +0 -100
  140. package/dist/cjs/talentTransfromation.js.map +0 -1
  141. package/dist/cjs/teams.d.ts +0 -85
  142. package/dist/cjs/teams.d.ts.map +0 -1
  143. package/dist/cjs/teams.js +0 -252
  144. package/dist/cjs/teams.js.map +0 -1
  145. package/dist/cjs/tenants.d.ts +0 -16
  146. package/dist/cjs/tenants.d.ts.map +0 -1
  147. package/dist/cjs/tenants.js +0 -55
  148. package/dist/cjs/tenants.js.map +0 -1
  149. package/dist/cjs/trainingPlans.d.ts +0 -92
  150. package/dist/cjs/trainingPlans.d.ts.map +0 -1
  151. package/dist/cjs/trainingPlans.js +0 -309
  152. package/dist/cjs/trainingPlans.js.map +0 -1
  153. package/dist/cjs/trainingPlansProficiencyLevels.d.ts +0 -32
  154. package/dist/cjs/trainingPlansProficiencyLevels.d.ts.map +0 -1
  155. package/dist/cjs/trainingPlansProficiencyLevels.js +0 -97
  156. package/dist/cjs/trainingPlansProficiencyLevels.js.map +0 -1
  157. package/dist/cjs/userInformation.d.ts +0 -29
  158. package/dist/cjs/userInformation.d.ts.map +0 -1
  159. package/dist/cjs/userInformation.js +0 -81
  160. package/dist/cjs/userInformation.js.map +0 -1
  161. package/dist/cjs/users.d.ts +0 -206
  162. package/dist/cjs/users.d.ts.map +0 -1
  163. package/dist/cjs/users.js +0 -694
  164. package/dist/cjs/users.js.map +0 -1
  165. package/dist/cjs/utils.d.ts +0 -14
  166. package/dist/cjs/utils.d.ts.map +0 -1
  167. package/dist/cjs/utils.js +0 -58
  168. package/dist/cjs/utils.js.map +0 -1
  169. package/dist/esm/actionNotifications.d.ts +0 -24
  170. package/dist/esm/actionNotifications.d.ts.map +0 -1
  171. package/dist/esm/actionNotifications.js +0 -67
  172. package/dist/esm/actionNotifications.js.map +0 -1
  173. package/dist/esm/address.d.ts +0 -8
  174. package/dist/esm/address.d.ts.map +0 -1
  175. package/dist/esm/address.js +0 -20
  176. package/dist/esm/address.js.map +0 -1
  177. package/dist/esm/aiAssistant.d.ts +0 -42
  178. package/dist/esm/aiAssistant.d.ts.map +0 -1
  179. package/dist/esm/aiAssistant.js +0 -126
  180. package/dist/esm/aiAssistant.js.map +0 -1
  181. package/dist/esm/avatar.d.ts +0 -11
  182. package/dist/esm/avatar.d.ts.map +0 -1
  183. package/dist/esm/avatar.js +0 -28
  184. package/dist/esm/avatar.js.map +0 -1
  185. package/dist/esm/axiosClient.d.ts +0 -31
  186. package/dist/esm/axiosClient.d.ts.map +0 -1
  187. package/dist/esm/axiosClient.js +0 -81
  188. package/dist/esm/axiosClient.js.map +0 -1
  189. package/dist/esm/config.d.ts +0 -23
  190. package/dist/esm/config.d.ts.map +0 -1
  191. package/dist/esm/config.js +0 -57
  192. package/dist/esm/config.js.map +0 -1
  193. package/dist/esm/constants.d.ts +0 -69
  194. package/dist/esm/constants.d.ts.map +0 -1
  195. package/dist/esm/constants.js +0 -88
  196. package/dist/esm/constants.js.map +0 -1
  197. package/dist/esm/dashboard.d.ts +0 -23
  198. package/dist/esm/dashboard.d.ts.map +0 -1
  199. package/dist/esm/dashboard.js +0 -68
  200. package/dist/esm/dashboard.js.map +0 -1
  201. package/dist/esm/departmentTrainingPlans.d.ts +0 -53
  202. package/dist/esm/departmentTrainingPlans.d.ts.map +0 -1
  203. package/dist/esm/departmentTrainingPlans.js +0 -144
  204. package/dist/esm/departmentTrainingPlans.js.map +0 -1
  205. package/dist/esm/groups.d.ts +0 -90
  206. package/dist/esm/groups.d.ts.map +0 -1
  207. package/dist/esm/groups.js +0 -258
  208. package/dist/esm/groups.js.map +0 -1
  209. package/dist/esm/index.d.ts +0 -33
  210. package/dist/esm/index.d.ts.map +0 -1
  211. package/dist/esm/index.js +0 -33
  212. package/dist/esm/index.js.map +0 -1
  213. package/dist/esm/integration.d.ts +0 -82
  214. package/dist/esm/integration.d.ts.map +0 -1
  215. package/dist/esm/integration.js +0 -299
  216. package/dist/esm/integration.js.map +0 -1
  217. package/dist/esm/integrationConfiguration.d.ts +0 -27
  218. package/dist/esm/integrationConfiguration.d.ts.map +0 -1
  219. package/dist/esm/integrationConfiguration.js +0 -80
  220. package/dist/esm/integrationConfiguration.js.map +0 -1
  221. package/dist/esm/integrations/contentGenerator.d.ts +0 -22
  222. package/dist/esm/integrations/contentGenerator.d.ts.map +0 -1
  223. package/dist/esm/integrations/contentGenerator.js +0 -64
  224. package/dist/esm/integrations/contentGenerator.js.map +0 -1
  225. package/dist/esm/learningContent.d.ts +0 -153
  226. package/dist/esm/learningContent.d.ts.map +0 -1
  227. package/dist/esm/learningContent.js +0 -453
  228. package/dist/esm/learningContent.js.map +0 -1
  229. package/dist/esm/learningPath.d.ts +0 -64
  230. package/dist/esm/learningPath.d.ts.map +0 -1
  231. package/dist/esm/learningPath.js +0 -194
  232. package/dist/esm/learningPath.js.map +0 -1
  233. package/dist/esm/logger.d.ts +0 -19
  234. package/dist/esm/logger.d.ts.map +0 -1
  235. package/dist/esm/logger.js +0 -55
  236. package/dist/esm/logger.js.map +0 -1
  237. package/dist/esm/microSkillsQuizes.d.ts +0 -18
  238. package/dist/esm/microSkillsQuizes.d.ts.map +0 -1
  239. package/dist/esm/microSkillsQuizes.js +0 -48
  240. package/dist/esm/microSkillsQuizes.js.map +0 -1
  241. package/dist/esm/quotas.d.ts +0 -15
  242. package/dist/esm/quotas.d.ts.map +0 -1
  243. package/dist/esm/quotas.js +0 -45
  244. package/dist/esm/quotas.js.map +0 -1
  245. package/dist/esm/role.d.ts +0 -113
  246. package/dist/esm/role.d.ts.map +0 -1
  247. package/dist/esm/role.js +0 -346
  248. package/dist/esm/role.js.map +0 -1
  249. package/dist/esm/roleTemplate.d.ts +0 -73
  250. package/dist/esm/roleTemplate.d.ts.map +0 -1
  251. package/dist/esm/roleTemplate.js +0 -224
  252. package/dist/esm/roleTemplate.js.map +0 -1
  253. package/dist/esm/security.d.ts +0 -27
  254. package/dist/esm/security.d.ts.map +0 -1
  255. package/dist/esm/security.js +0 -72
  256. package/dist/esm/security.js.map +0 -1
  257. package/dist/esm/skill.d.ts +0 -141
  258. package/dist/esm/skill.d.ts.map +0 -1
  259. package/dist/esm/skill.js +0 -418
  260. package/dist/esm/skill.js.map +0 -1
  261. package/dist/esm/skillAssessmentTestingSession.d.ts +0 -85
  262. package/dist/esm/skillAssessmentTestingSession.d.ts.map +0 -1
  263. package/dist/esm/skillAssessmentTestingSession.js +0 -261
  264. package/dist/esm/skillAssessmentTestingSession.js.map +0 -1
  265. package/dist/esm/skillAssessments.d.ts +0 -49
  266. package/dist/esm/skillAssessments.d.ts.map +0 -1
  267. package/dist/esm/skillAssessments.js +0 -147
  268. package/dist/esm/skillAssessments.js.map +0 -1
  269. package/dist/esm/skillTemplate.d.ts +0 -87
  270. package/dist/esm/skillTemplate.d.ts.map +0 -1
  271. package/dist/esm/skillTemplate.js +0 -267
  272. package/dist/esm/skillTemplate.js.map +0 -1
  273. package/dist/esm/talentTransfromation.d.ts +0 -29
  274. package/dist/esm/talentTransfromation.d.ts.map +0 -1
  275. package/dist/esm/talentTransfromation.js +0 -93
  276. package/dist/esm/talentTransfromation.js.map +0 -1
  277. package/dist/esm/teams.d.ts +0 -85
  278. package/dist/esm/teams.d.ts.map +0 -1
  279. package/dist/esm/teams.js +0 -238
  280. package/dist/esm/teams.js.map +0 -1
  281. package/dist/esm/tenants.d.ts +0 -16
  282. package/dist/esm/tenants.d.ts.map +0 -1
  283. package/dist/esm/tenants.js +0 -50
  284. package/dist/esm/tenants.js.map +0 -1
  285. package/dist/esm/trainingPlans.d.ts +0 -92
  286. package/dist/esm/trainingPlans.d.ts.map +0 -1
  287. package/dist/esm/trainingPlans.js +0 -293
  288. package/dist/esm/trainingPlans.js.map +0 -1
  289. package/dist/esm/trainingPlansProficiencyLevels.d.ts +0 -32
  290. package/dist/esm/trainingPlansProficiencyLevels.d.ts.map +0 -1
  291. package/dist/esm/trainingPlansProficiencyLevels.js +0 -90
  292. package/dist/esm/trainingPlansProficiencyLevels.js.map +0 -1
  293. package/dist/esm/userInformation.d.ts +0 -29
  294. package/dist/esm/userInformation.d.ts.map +0 -1
  295. package/dist/esm/userInformation.js +0 -75
  296. package/dist/esm/userInformation.js.map +0 -1
  297. package/dist/esm/users.d.ts +0 -206
  298. package/dist/esm/users.d.ts.map +0 -1
  299. package/dist/esm/users.js +0 -663
  300. package/dist/esm/users.js.map +0 -1
  301. package/dist/esm/utils.d.ts +0 -14
  302. package/dist/esm/utils.d.ts.map +0 -1
  303. package/dist/esm/utils.js +0 -50
  304. package/dist/esm/utils.js.map +0 -1
package/lib/users.js ADDED
@@ -0,0 +1,695 @@
1
+ import { client } from "./axiosClient.js";
2
+
3
+ /**
4
+ * Add a new API Token
5
+ * @param {Date} expiration Expiration date of the token
6
+ * @param {String} authToken Authorization token
7
+ */
8
+ export const addAPIToken = (name, expiration, authToken) => {
9
+ return new Promise(function (resolve, reject) {
10
+ const requestData = {
11
+ name: name,
12
+ expiration: expiration,
13
+ };
14
+ const addTokenRequest = client.post(
15
+ `api/v1/users/addapitoken`,
16
+ requestData,
17
+ {
18
+ headers: { authorization: authToken },
19
+ }
20
+ );
21
+ addTokenRequest
22
+ .then((result) => {
23
+ if (result != null) {
24
+ resolve(result.data);
25
+ } else {
26
+ reject(process.env.ERROR_INVALID_INFORMATION);
27
+ }
28
+ })
29
+ .catch((error) => {
30
+ reject(error);
31
+ });
32
+ });
33
+ };
34
+
35
+ /**
36
+ * Confirm email address
37
+ * @param {String} validationCode The code was provided to the user in advance by email
38
+ */
39
+ export const confirmEmailAddress = (validationCode) => {
40
+ return new Promise(function (resolve, reject) {
41
+ const requestData = {
42
+ validationCode: validationCode,
43
+ };
44
+ const confirmationRequest = client.post(
45
+ "api/v1/users/confirmEmail",
46
+ requestData
47
+ );
48
+ confirmationRequest
49
+ .then(() => {
50
+ resolve();
51
+ })
52
+ .catch((error) => {
53
+ reject(error);
54
+ });
55
+ });
56
+ };
57
+
58
+ /**
59
+ * Confirm phone number
60
+ * @param {String} validationCode The code was provided to the user in advance by email
61
+ * @param {String} authToken Authorization token
62
+ */
63
+ export const confirmPhone = (validationCode, authToken) => {
64
+ return new Promise(function (resolve, reject) {
65
+ const requestData = {
66
+ validationCode: validationCode,
67
+ };
68
+ const confirmationRequest = client.post(
69
+ "api/v1/users/confirmPhone",
70
+ requestData,
71
+ {
72
+ headers: { authorization: authToken },
73
+ }
74
+ );
75
+ confirmationRequest
76
+ .then((response) => {
77
+ resolve(response.data);
78
+ })
79
+ .catch((error) => {
80
+ reject(error);
81
+ });
82
+ });
83
+ };
84
+
85
+ /**
86
+ * Generate confirmation code
87
+ * @param {String} phoneNumber Send confirmation code to the phone number
88
+ * @param {String} authToken Authorization token
89
+ */
90
+ export const confirmPhoneGenerateCode = (phoneNumber, authToken) => {
91
+ return new Promise(function (resolve, reject) {
92
+ const requestData = {
93
+ phoneNumber: phoneNumber,
94
+ };
95
+ const confirmationRequest = client.post(
96
+ "api/v1/users/confirmPhoneGenerateCode",
97
+ requestData,
98
+ {
99
+ headers: { authorization: authToken },
100
+ }
101
+ );
102
+ confirmationRequest
103
+ .then((response) => {
104
+ resolve(response.data);
105
+ })
106
+ .catch((error) => {
107
+ reject(error);
108
+ });
109
+ });
110
+ };
111
+
112
+ /**
113
+ * Create a new account (tenant). It returns a promise
114
+ * @param {String} email User's email address
115
+ * @param {String} firstName User's first name
116
+ * @param {String} lastName User's last name
117
+ * @param {String} password User's password
118
+ * @param {String} subSite Subsite where the new account will be created
119
+ * @param {String} inviteCode Invitation code received in advance from one of the account owners
120
+ * @param
121
+ */
122
+ export const createAccount = (
123
+ email,
124
+ firstName,
125
+ lastName,
126
+ password,
127
+ subSite,
128
+ inviteCode
129
+ ) => {
130
+ return new Promise(function (resolve, reject) {
131
+ if (
132
+ email.trim() === "" ||
133
+ firstName.trim() === "" ||
134
+ lastName.trim() === "" ||
135
+ password.trim() === "" ||
136
+ subSite.trim() === "" ||
137
+ inviteCode.trim() === ""
138
+ ) {
139
+ reject(process.env.ERROR_EMPTY_FIELDS);
140
+ } else {
141
+ const signupData = {
142
+ email: email,
143
+ firstName: firstName,
144
+ inviteCode: inviteCode,
145
+ lastName: lastName,
146
+ password: password,
147
+ subSite: subSite,
148
+ };
149
+ let request = client.post("api/v1/users/createAccount", signupData);
150
+ request
151
+ .then((result) => {
152
+ resolve(result.data.user);
153
+ })
154
+ .catch((error) => {
155
+ reject(error);
156
+ });
157
+ }
158
+ });
159
+ };
160
+
161
+ /**
162
+ * Create a new user account. It returns a promise
163
+ * @param {String} email User's email address
164
+ * @param {String} firstName User's first name
165
+ * @param {String} lastName User's last name
166
+ * @param {String} password User's password
167
+ * @param {String} token Invitation token provided to the user
168
+ */
169
+ export const createUserAccount = (
170
+ email,
171
+ firstName,
172
+ lastName,
173
+ password,
174
+ token
175
+ ) => {
176
+ return new Promise(function (resolve, reject) {
177
+ if (
178
+ email.trim() === "" ||
179
+ firstName.trim() === "" ||
180
+ lastName.trim() === "" ||
181
+ password.trim() === "" ||
182
+ token.trim() === ""
183
+ ) {
184
+ reject(process.env.ERROR_EMPTY_FIELDS);
185
+ } else {
186
+ const signupData = {
187
+ email: email,
188
+ firstName: firstName,
189
+ lastName: lastName,
190
+ password: password,
191
+ token: token,
192
+ };
193
+ let request = client.post("api/v1/users/createUser", signupData);
194
+ request
195
+ .then((result) => {
196
+ resolve(result.data.user);
197
+ })
198
+ .catch((error) => {
199
+ reject(error);
200
+ });
201
+ }
202
+ });
203
+ };
204
+
205
+ /**
206
+ * Delete an existing API token
207
+ * @param {String} token Expiration date of the token
208
+ * @param {String} authToken Authorization token
209
+ */
210
+ export const deleteAPIToken = (token, authToken) => {
211
+ return new Promise(function (resolve, reject) {
212
+ const deleteTokenRequest = client.delete(`api/v1/users/user/token`, {
213
+ headers: { authorization: authToken },
214
+ data: {
215
+ token: token,
216
+ },
217
+ });
218
+ deleteTokenRequest
219
+ .then(() => {
220
+ resolve(token);
221
+ })
222
+ .catch((error) => {
223
+ reject(error);
224
+ });
225
+ });
226
+ };
227
+
228
+ /**
229
+ * Delete existing users
230
+ * @param {Array<String>} userIds The ID of the users to be deleted
231
+ * @param {String} authToken Authorization token
232
+ */
233
+ export const deleteUsers = (userIds, authToken) => {
234
+ return new Promise(function (resolve, reject) {
235
+ const deleteTokenRequest = client.delete(`api/v1/users/`, {
236
+ headers: { authorization: authToken },
237
+ data: {
238
+ userIds: userIds,
239
+ },
240
+ });
241
+ deleteTokenRequest
242
+ .then((response) => {
243
+ resolve(response.data);
244
+ })
245
+ .catch((error) => {
246
+ reject(error);
247
+ });
248
+ });
249
+ };
250
+
251
+ /**
252
+ * Get all the API tokens
253
+ * @param {String} authToken Authorization token
254
+ */
255
+ export const getAPITokens = (authToken) => {
256
+ return new Promise(function (resolve, reject) {
257
+ const getTokensRequest = client.get(`api/v1/users/getapitokens`, {
258
+ headers: { authorization: authToken },
259
+ });
260
+ getTokensRequest
261
+ .then((result) => {
262
+ resolve(result.data);
263
+ })
264
+ .catch((error) => {
265
+ reject(error);
266
+ });
267
+ });
268
+ };
269
+
270
+ /**
271
+ * Get the specified user account by Id. It returns a promise
272
+ * @param {String} id Id of the user for which information is being requested
273
+ */
274
+ export const getUserById = (id) => {
275
+ return new Promise(function (resolve, reject) {
276
+ const getUserInformationRequest = client.get(`api/v1/users/user/${id}`);
277
+ getUserInformationRequest
278
+ .then((result) => {
279
+ if (result != null) {
280
+ resolve(result.data.user);
281
+ } else {
282
+ reject(process.env.ERROR_INVALID_INFORMATION);
283
+ }
284
+ })
285
+ .catch((error) => {
286
+ reject(error);
287
+ });
288
+ });
289
+ };
290
+
291
+ /**
292
+ * Get user information
293
+ * @param {String} userId User Id
294
+ * @param {String} category User information category
295
+ * @param {String} token Authorization token
296
+ */
297
+ export const getUserInformation = (userId, category, token) => {
298
+ return new Promise(function (resolve, reject) {
299
+ let confirmationRequest = client.get(
300
+ `api/v1/users/user/${userId ? userId : 0}/${category ? category : "*"}`,
301
+ {
302
+ headers: { authorization: token },
303
+ }
304
+ );
305
+ confirmationRequest
306
+ .then((response) => {
307
+ resolve(response.data);
308
+ })
309
+ .catch((error) => {
310
+ reject(error);
311
+ });
312
+ });
313
+ };
314
+
315
+ /**
316
+ * Get the list of users
317
+ * @param {Object} filter Filter to select the users. Ex: {firstName : "John"}
318
+ * @param {Array} fields Fields to be loaded. Ex: ["firstName"]
319
+ * @param {String} token Authorization token
320
+ */
321
+ export const getUsers = (filter, fields, token) => {
322
+ return new Promise(function (resolve, reject) {
323
+ const requestData = {
324
+ filter: filter,
325
+ fields: fields,
326
+ };
327
+ let confirmationRequest = client.post(`api/v1/users/`, requestData, {
328
+ headers: { authorization: token },
329
+ });
330
+ confirmationRequest
331
+ .then((response) => {
332
+ resolve(response.data);
333
+ })
334
+ .catch((error) => {
335
+ reject(error);
336
+ });
337
+ });
338
+ };
339
+
340
+ /**
341
+ * Invite other users to join the same account
342
+ * @param {Array<String>} invitees List of emails of the invitees
343
+ * @param {String} groupId The group the user should be added to
344
+ * @param {String} teamId The team the user should be added to
345
+ * @param {String} token Authorization token
346
+ */
347
+ export const inviteUsers = (invitees, groupId, teamId, authToken) => {
348
+ return new Promise(function (resolve, reject) {
349
+ const requestData = {
350
+ invitees: invitees,
351
+ groupId: groupId,
352
+ teamId: teamId,
353
+ token: authToken,
354
+ };
355
+ let request = client.post("api/v1/users/invite", requestData, {
356
+ headers: { authorization: authToken },
357
+ });
358
+ request
359
+ .then((response) => {
360
+ resolve(response.data);
361
+ })
362
+ .catch((error) => {
363
+ reject(error);
364
+ });
365
+ });
366
+ };
367
+
368
+ /**
369
+ * Login using email and password. It returns a promise
370
+ * @param {String} email User's email address
371
+ * @param {String} password User's password
372
+ * @param {boolean} rememberMe Set to true if the user wants his account to be saved on the current machine
373
+ */
374
+ export const login = (email, password, rememberMe) => {
375
+ return new Promise(function (resolve, reject) {
376
+ const requestData = {
377
+ email: email,
378
+ password: password,
379
+ rememberMe: rememberMe,
380
+ };
381
+ let request = client.post("api/v1/auth/login", requestData);
382
+ request
383
+ .then((response) => {
384
+ resolve(response.data);
385
+ })
386
+ .catch((error) => {
387
+ reject(error);
388
+ });
389
+ });
390
+ };
391
+
392
+ /**
393
+ * Logout from the server. It returns a promise
394
+ * @param {String} token Authorization token
395
+ */
396
+ export const logout = (token) => {
397
+ return new Promise(function (resolve, reject) {
398
+ const options = {
399
+ headers: { authorization: token },
400
+ };
401
+ let request = client.post("api/v1/auth/logout", {}, options);
402
+ request
403
+ .then((response) => {
404
+ resolve(response.data);
405
+ })
406
+ .catch((error) => {
407
+ reject(error);
408
+ });
409
+ });
410
+ };
411
+
412
+ /**
413
+ * Checks the current auth token and maintain it alive. It returns a promise. In case the token is invalid
414
+ * a new token can be restablished using login
415
+ * @param {String} token User's auth token to be refreshed
416
+ */
417
+ export const refreshToken = (token) => {
418
+ return new Promise(function (resolve, reject) {
419
+ let options = { headers: { Authorization: token } };
420
+ let request = client.post("api/v1/auth/refreshToken", {}, options);
421
+ request
422
+ .then((response) => {
423
+ resolve(response.data);
424
+ })
425
+ .catch((error) => {
426
+ reject(error);
427
+ });
428
+ });
429
+ };
430
+
431
+ /**
432
+ * Remove an existing API token
433
+ * @param {String} id The ID of the token to be removed
434
+ * @param {String} authToken Authorization token
435
+ */
436
+ export const removeAPIToken = (id, authToken) => {
437
+ return new Promise(function (resolve, reject) {
438
+ const requestData = {
439
+ id: id,
440
+ };
441
+ const removeTokenRequest = client.post(
442
+ `api/v1/users/removeapitoken`,
443
+ requestData,
444
+ {
445
+ headers: { authorization: authToken },
446
+ }
447
+ );
448
+ removeTokenRequest
449
+ .then(() => {
450
+ resolve(id);
451
+ })
452
+ .catch((error) => {
453
+ reject(error);
454
+ });
455
+ });
456
+ };
457
+
458
+ /**
459
+ * Resend invitation emails
460
+ * @param {Array<String>} invitees List of emails of the invitees
461
+ * @param {String} token Authorization token
462
+ */
463
+ export const resendInvitationEmails = (invitees, authToken) => {
464
+ return new Promise(function (resolve, reject) {
465
+ const requestData = {
466
+ invitees: invitees,
467
+ token: authToken,
468
+ };
469
+ let request = client.post("api/v1/users/resendinvite", requestData, {
470
+ headers: { authorization: authToken },
471
+ });
472
+ request
473
+ .then((response) => {
474
+ resolve(response.data);
475
+ })
476
+ .catch((error) => {
477
+ reject(error);
478
+ });
479
+ });
480
+ };
481
+
482
+ /**
483
+ * Reset the password. It returns a promise
484
+ * @param {String} code Code provided to the user by email
485
+ * @param {String} email User's email address
486
+ * @param {String} password User's new password
487
+ */
488
+ export const resetPassword = (email, code, password) => {
489
+ return new Promise(function (resolve, reject) {
490
+ let postData = {
491
+ email: email,
492
+ code: code,
493
+ password: password,
494
+ };
495
+ let request = client.post("api/v1/users/resetpassword", postData);
496
+ request
497
+ .then((response) => {
498
+ resolve(response.data);
499
+ })
500
+ .catch((error) => {
501
+ reject(error);
502
+ });
503
+ });
504
+ };
505
+
506
+ /**
507
+ * Send an email to the user indicated by the email address to reset the password. It returns a promise
508
+ * @param {String} email Email of the user who needs to reset the password
509
+ */
510
+ export const sendPasswordResetNotification = (email) => {
511
+ return new Promise(function (resolve, reject) {
512
+ let postData = {
513
+ email: email,
514
+ };
515
+ let request = client.post(
516
+ "api/v1/users/sendpasswordresetnotification",
517
+ postData
518
+ );
519
+ request
520
+ .then((response) => {
521
+ resolve(response.data);
522
+ })
523
+ .catch((error) => {
524
+ reject(error);
525
+ });
526
+ });
527
+ };
528
+
529
+ /**
530
+ * Set user profile information
531
+ * @param {String} userId User Id
532
+ * @param {String} category User information category
533
+ * @param {String} data New or updated user data information
534
+ * @param {Object} token Authorization token
535
+ */
536
+ export const setUserInformation = (userId, category, data, token) => {
537
+ return new Promise(function (resolve, reject) {
538
+ const requestData = {
539
+ data: category ? { [category]: data } : data,
540
+ userId: userId,
541
+ };
542
+ let confirmationRequest = client.post("api/v1/users/user", requestData, {
543
+ headers: { authorization: token },
544
+ });
545
+ confirmationRequest
546
+ .then((response) => {
547
+ resolve(response.data);
548
+ })
549
+ .catch((error) => {
550
+ reject(error);
551
+ });
552
+ });
553
+ };
554
+
555
+ /**
556
+ * Update user email
557
+ * @param {String} email The new email address
558
+ * @param {String} password The current password
559
+ * @param {String} token Authorization token
560
+ */
561
+ export const updateUserEmail = (email, password, token) => {
562
+ return new Promise(function (resolve, reject) {
563
+ const requestData = {
564
+ email: email,
565
+ password: password,
566
+ };
567
+ let confirmationRequest = client.post(
568
+ "api/v1/users/updateemail",
569
+ requestData,
570
+ {
571
+ headers: { authorization: token },
572
+ }
573
+ );
574
+ confirmationRequest
575
+ .then((response) => {
576
+ resolve(response.data);
577
+ })
578
+ .catch((error) => {
579
+ reject(error);
580
+ });
581
+ });
582
+ };
583
+
584
+ /**
585
+ * Update user groups
586
+ * @param {String} userIds The id of the user
587
+ * @param {Array<String>} groups The id of the groups the user should belong to
588
+ * @param {String} token Authorization token
589
+ */
590
+ export const updateUserGroups = (userId, groups, token) => {
591
+ return new Promise(function (resolve, reject) {
592
+ const requestData = {
593
+ userId: userId,
594
+ groups: groups || [],
595
+ };
596
+ let confirmationRequest = client.post(
597
+ "api/v1/users/user/updategroups",
598
+ requestData,
599
+ {
600
+ headers: { authorization: token },
601
+ }
602
+ );
603
+ confirmationRequest
604
+ .then(() => {
605
+ resolve(requestData);
606
+ })
607
+ .catch((error) => {
608
+ reject(error);
609
+ });
610
+ });
611
+ };
612
+
613
+ /**
614
+ * Update user password
615
+ * @param {String} password The current password
616
+ * @param {String} newPassword The new password
617
+ * @param {String} token Authorization token
618
+ */
619
+ export const updateUserPassword = (password, newPassword, token) => {
620
+ return new Promise(function (resolve, reject) {
621
+ const requestData = {
622
+ password: password,
623
+ newPassword: newPassword,
624
+ };
625
+ let confirmationRequest = client.post(
626
+ "api/v1/users/updatepassword",
627
+ requestData,
628
+ {
629
+ headers: { authorization: token },
630
+ }
631
+ );
632
+ confirmationRequest
633
+ .then((response) => {
634
+ resolve(response.data);
635
+ })
636
+ .catch((error) => {
637
+ reject(error);
638
+ });
639
+ });
640
+ };
641
+
642
+ /**
643
+ * Validate reset password code. It returns a promise
644
+ * @param {String} email User's email address
645
+ * @param {String} code Provided reset code
646
+ */
647
+ export const validateResetPasswordCode = (email, code) => {
648
+ return new Promise(function (resolve, reject) {
649
+ let postData = {
650
+ email: email,
651
+ code: code,
652
+ };
653
+ let request = client.post(
654
+ "api/v1/users/validateresetpasswordcode",
655
+ postData
656
+ );
657
+ request
658
+ .then((response) => {
659
+ resolve(response.data);
660
+ })
661
+ .catch((error) => {
662
+ reject(error);
663
+ });
664
+ });
665
+ };
666
+
667
+ const users = {
668
+ addAPIToken,
669
+ confirmEmailAddress,
670
+ confirmPhone,
671
+ confirmPhoneGenerateCode,
672
+ createAccount,
673
+ createUserAccount,
674
+ deleteAPIToken,
675
+ deleteUsers,
676
+ getAPITokens,
677
+ getUserById,
678
+ getUserInformation,
679
+ getUsers,
680
+ inviteUsers,
681
+ login,
682
+ logout,
683
+ refreshToken,
684
+ removeAPIToken,
685
+ resendInvitationEmails,
686
+ resetPassword,
687
+ sendPasswordResetNotification,
688
+ setUserInformation,
689
+ updateUserEmail,
690
+ updateUserGroups,
691
+ updateUserPassword,
692
+ validateResetPasswordCode,
693
+ };
694
+
695
+ export default users;