@getjones/test-infra 2.10.2 → 2.10.4

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.10.2",
3
+ "version": "2.10.4",
4
4
  "description": "Providing internal and openapi interface",
5
5
  "main": "src/index.js",
6
6
  "scripts": {
@@ -0,0 +1,11 @@
1
+ module.exports = {
2
+ DOCUMENT: 'DOCUMENT',
3
+ REPORTS: 'REPORTS',
4
+ SNIPPET: 'SNIPPET',
5
+ CONTRACT: 'CONTRACT',
6
+ TEMPCOI: 'TEMPCOI',
7
+ COI: 'COI',
8
+ ATTACHMENT: 'ATTACHMENT',
9
+ OCRDATA: 'OCRDATA',
10
+ VENDORREPORT: 'VENDORREPORT'
11
+ };
Binary file
@@ -5,7 +5,16 @@ const AGREEMENT_API_URL = `${backendUrl}/saas/contractor/agreement`;
5
5
 
6
6
  const Endpoints = {
7
7
  create: AGREEMENT_API_URL,
8
- delete: AGREEMENT_API_URL
8
+ delete: AGREEMENT_API_URL,
9
+ getAgreementPreSignedUrl: `${backendUrl}/pre-signed-url/upload/agreement`
10
+ };
11
+
12
+ const getAgreementPreSignedUrl = (formData, context) => {
13
+ return requests.postRequestHandler(Endpoints.getAgreementPreSignedUrl, formData, context, formData.getHeaders());
14
+ };
15
+
16
+ const uploadAgreementToS3 = (preSignedUrl, file) => {
17
+ return requests.putRequestHandler(preSignedUrl, file);
9
18
  };
10
19
 
11
20
  const createAgreement = (createAgreementModel, context) => {
@@ -20,5 +29,7 @@ const deleteAgreement = (recordId, context) => {
20
29
 
21
30
  module.exports = {
22
31
  createAgreement,
23
- deleteAgreement
32
+ deleteAgreement,
33
+ uploadAgreementToS3,
34
+ getAgreementPreSignedUrl
24
35
  };
@@ -1,6 +1,11 @@
1
+ const fs = require('fs');
2
+ const FormData = require('form-data');
3
+
1
4
  const agreementAPI = require('./agreement.api');
2
5
  const { CreateAgreementModel } = require('../models/create.agreement.model');
3
6
  const { validateType } = require('../../../../common/validations/typeValidations');
7
+ const httpResponseStatusCodes = require('../../../../common/httpResponseStatusCodes.json');
8
+ const { CONTRACT } = require('../../../../common/consts/s3FileTypes');
4
9
 
5
10
  const createAgreement = (createAgreementModel, context) => {
6
11
  validateType(createAgreementModel, CreateAgreementModel);
@@ -11,7 +16,52 @@ const deleteAgreement = (recordId, context) => {
11
16
  return agreementAPI.deleteAgreement(recordId, context);
12
17
  };
13
18
 
19
+ const getAgreementPreSignedUrl = (recordId, context, { filePath }) => {
20
+ const formData = new FormData();
21
+ const file = fs.createReadStream(filePath);
22
+ formData.append('recordId', recordId);
23
+ formData.append('fileType', CONTRACT);
24
+ formData.append('file', file);
25
+
26
+ return agreementAPI.getAgreementPreSignedUrl(formData, context);
27
+ };
28
+
29
+ const uploadAgreementToS3 = (preSignedUrl, file) => {
30
+ return agreementAPI.uploadAgreementToS3(preSignedUrl, file);
31
+ };
32
+
33
+ const uploadAgreement = async (
34
+ recordId,
35
+ filePath,
36
+ uploaderId,
37
+ context,
38
+ { contractorDateModified } = {}
39
+ ) => {
40
+ const { data: { preSignedUrl, fileName: fullFilePath } } = await getAgreementPreSignedUrl(recordId, context, { filePath });
41
+
42
+ const uploadResults = await uploadAgreementToS3(preSignedUrl, filePath);
43
+
44
+ if (uploadResults.status !== httpResponseStatusCodes.OK) {
45
+ throw new Error(`Failed to upload agreement to S3 for record ${recordId}`);
46
+ }
47
+
48
+ const createAgreementModel = new CreateAgreementModel({
49
+ contractorId: recordId,
50
+ contractorDateModified,
51
+ uploaderId,
52
+ signedContractName: fullFilePath
53
+ });
54
+
55
+ const createResponse = await createAgreement(createAgreementModel, context);
56
+
57
+ if (createResponse.status !== httpResponseStatusCodes.OK) {
58
+ throw new Error(`Failed to upload agreement for record ${recordId}`);
59
+ }
60
+
61
+ return createResponse;
62
+ };
14
63
  module.exports = {
15
64
  createAgreement,
16
- deleteAgreement
65
+ deleteAgreement,
66
+ uploadAgreement
17
67
  };
@@ -3,7 +3,7 @@ const { UPLOADER_TYPE } = require('../consts/consts');
3
3
  class CreateAgreementModel {
4
4
  constructor({ contractorId, contractorDateModified, uploaderId, signedContractName, uploaderType = UPLOADER_TYPE.USER }) {
5
5
  this.contractorId = contractorId;
6
- this.contractorDateModified = contractorDateModified;
6
+ this.contractorDateModified = contractorDateModified || null;
7
7
  this.uploaderId = uploaderId;
8
8
  this.signedContractName = signedContractName;
9
9
  this.uploaderType = uploaderType;
@@ -16,7 +16,7 @@ const restoreDefaultById = async (id, context) => {
16
16
  const response = await emailCustomizationApi.restoreDefaultById(id, context);
17
17
 
18
18
  if (response.status !== httpResponseStatusCodes.OK) {
19
- throw new Error(`Failed to delete email customization by id ${id}`);
19
+ throw new Error('Failed to restore email customization to default');
20
20
  }
21
21
 
22
22
  return response;
@@ -3,14 +3,14 @@ const fs = require('fs');
3
3
  const path = require('path');
4
4
  const FormData = require('form-data');
5
5
  const consts = require('../consts');
6
-
7
- const { RELATED_DOC_TYPES, S3_FILE_TYPE } = consts;
6
+ const { DOCUMENT } = require('../../../../common/consts/s3FileTypes');
7
+ const { RELATED_DOC_TYPES } = consts;
8
8
 
9
9
  const getRelatedDocPreSignedUrl = (recordId, context, { filePath }) => {
10
10
  const formData = new FormData();
11
11
  const file = fs.createReadStream(filePath);
12
12
  formData.append('recordId', recordId);
13
- formData.append('fileType', S3_FILE_TYPE.DOCUMENT);
13
+ formData.append('fileType', DOCUMENT);
14
14
  formData.append('file', file) ;
15
15
 
16
16
  return uploadFileApi.getRelatedDocPreSignedUrl(formData, context);
@@ -7,19 +7,6 @@ const RELATED_DOC_TYPES = {
7
7
  OTHER: 'OTHER'
8
8
  };
9
9
 
10
- S3_FILE_TYPE = {
11
- DOCUMENT: 'DOCUMENT',
12
- REPORTS: 'REPORTS',
13
- SNIPPET: 'SNIPPET',
14
- CONTRACT: 'CONTRACT',
15
- TEMPCOI: 'TEMPCOI',
16
- COI: 'COI',
17
- ATTACHMENT: 'ATTACHMENT',
18
- OCRDATA: 'OCRDATA',
19
- VENDORREPORT: 'VENDORREPORT'
20
- };
21
-
22
10
  module.exports = {
23
- RELATED_DOC_TYPES,
24
- S3_FILE_TYPE
11
+ RELATED_DOC_TYPES
25
12
  };
@@ -193,5 +193,6 @@ module.exports = {
193
193
  sendForgetPasswordMail,
194
194
  getOrCreateInnerSystemUser,
195
195
  editUserProfile,
196
- editUserSettings
196
+ editUserSettings,
197
+ getInnerSystemUserByEmail
197
198
  };