@getjones/test-infra 2.12.3 → 2.12.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,11 +1,11 @@
|
|
|
1
1
|
const fs = require('fs');
|
|
2
2
|
const FormData = require('form-data');
|
|
3
|
-
|
|
3
|
+
const uploadFileApi = require('../../../internal-api/uploadFiles/api/upload.file.api');
|
|
4
4
|
const agreementAPI = require('./agreement.api');
|
|
5
5
|
const { CreateAgreementModel } = require('../models/create.agreement.model');
|
|
6
6
|
const { validateType } = require('../../../../common/validations/typeValidations');
|
|
7
7
|
const httpResponseStatusCodes = require('../../../../common/httpResponseStatusCodes.json');
|
|
8
|
-
const { CONTRACT } = require('../../../../common/consts/s3FileTypes');
|
|
8
|
+
const { CONTRACT, TEMP_DOCUMENTS } = require('../../../../common/consts/s3FileTypes');
|
|
9
9
|
|
|
10
10
|
const createAgreement = (createAgreementModel, context) => {
|
|
11
11
|
validateType(createAgreementModel, CreateAgreementModel);
|
|
@@ -18,18 +18,32 @@ const deleteAgreement = (recordId, context) => {
|
|
|
18
18
|
|
|
19
19
|
const getAgreementPreSignedUrl = (recordId, context, { filePath }) => {
|
|
20
20
|
const formData = new FormData();
|
|
21
|
-
const
|
|
21
|
+
const fileName = path.basename(filePath);
|
|
22
22
|
formData.append('recordId', recordId);
|
|
23
|
-
formData.append('fileType',
|
|
24
|
-
formData.append('
|
|
23
|
+
formData.append('fileType', TEMP_DOCUMENTS);
|
|
24
|
+
formData.append('fileName', fileName) ;
|
|
25
25
|
|
|
26
26
|
return agreementAPI.getAgreementPreSignedUrl(formData, context);
|
|
27
27
|
};
|
|
28
28
|
|
|
29
|
-
const
|
|
29
|
+
const uploadAgreementToTempBucket = (preSignedUrl, file) => {
|
|
30
30
|
return agreementAPI.uploadAgreementToS3(preSignedUrl, file);
|
|
31
31
|
};
|
|
32
32
|
|
|
33
|
+
const uploadAgreementToS3 = (fileName, recordId) => {
|
|
34
|
+
const formData = new FormData();
|
|
35
|
+
formData.append('fileName', fileName) ;
|
|
36
|
+
formData.append('fileType', CONTRACT);
|
|
37
|
+
formData.append('recordId', recordId);
|
|
38
|
+
return uploadFileApi.uploadFile(formData);
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
const validateResponse = (response, recordId) => {
|
|
42
|
+
if (response.status !== httpResponseStatusCodes.OK) {
|
|
43
|
+
throw new Error(`Failed to upload agreement to S3 for record ${recordId}`);
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
|
|
33
47
|
const uploadAgreement = async (
|
|
34
48
|
recordId,
|
|
35
49
|
filePath,
|
|
@@ -39,11 +53,11 @@ const uploadAgreement = async (
|
|
|
39
53
|
) => {
|
|
40
54
|
const { data: { preSignedUrl, fileName: fullFilePath } } = await getAgreementPreSignedUrl(recordId, context, { filePath });
|
|
41
55
|
|
|
42
|
-
const uploadResults = await
|
|
56
|
+
const uploadResults = await uploadAgreementToTempBucket(preSignedUrl, filePath);
|
|
57
|
+
validateResponse(uploadResults, recordId);
|
|
43
58
|
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
}
|
|
59
|
+
const response = await uploadAgreementToS3(fullFilePath, recordId);
|
|
60
|
+
validateResponse(response, recordId);
|
|
47
61
|
|
|
48
62
|
const createAgreementModel = new CreateAgreementModel({
|
|
49
63
|
contractorId: recordId,
|