@getjones/test-infra 2.10.1 → 2.10.3
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 +1 -1
- package/src/index.js +0 -3
- package/src/saas/internal-api/agreement/api/agreement.api.js +14 -2
- package/src/saas/internal-api/agreement/api/agreement.service.js +50 -1
- package/src/saas/internal-api/agreement/models/create.agreement.model.js +1 -1
- package/src/saas/internal-api/users/api/users.service.js +2 -1
- package/src/saas/internal-api/emailCustomization/api/email.customization.api.js +0 -20
- package/src/saas/internal-api/emailCustomization/api/email.customization.service.js +0 -39
- package/src/saas/internal-api/emailCustomization/index.js +0 -3
package/package.json
CHANGED
package/src/index.js
CHANGED
|
@@ -41,8 +41,6 @@ const getInternalAPI = () => {
|
|
|
41
41
|
const agreement = require('./saas/internal-api/agreement/index');
|
|
42
42
|
const uploadFile = require('./saas/internal-api/uploadFiles/index');
|
|
43
43
|
|
|
44
|
-
const emailCustomization = require('./saas/internal-api/emailCustomization');
|
|
45
|
-
|
|
46
44
|
const internalAPI = {
|
|
47
45
|
defaults,
|
|
48
46
|
auth,
|
|
@@ -65,7 +63,6 @@ const getInternalAPI = () => {
|
|
|
65
63
|
requestsTable,
|
|
66
64
|
threadScheduler,
|
|
67
65
|
dbEmails,
|
|
68
|
-
emailCustomization,
|
|
69
66
|
factory,
|
|
70
67
|
agreement,
|
|
71
68
|
uploadFile
|
|
@@ -5,7 +5,17 @@ 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
|
+
submitContract: `${backendUrl}/saas/contractor/agreement`
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
const getAgreementPreSignedUrl = (formData, context) => {
|
|
14
|
+
return requests.postRequestHandler(Endpoints.getAgreementPreSignedUrl, formData, context, formData.getHeaders());
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
const uploadAgreementToS3 = (preSignedUrl, file) => {
|
|
18
|
+
return requests.putRequestHandler(preSignedUrl, file);
|
|
9
19
|
};
|
|
10
20
|
|
|
11
21
|
const createAgreement = (createAgreementModel, context) => {
|
|
@@ -20,5 +30,7 @@ const deleteAgreement = (recordId, context) => {
|
|
|
20
30
|
|
|
21
31
|
module.exports = {
|
|
22
32
|
createAgreement,
|
|
23
|
-
deleteAgreement
|
|
33
|
+
deleteAgreement,
|
|
34
|
+
uploadAgreementToS3,
|
|
35
|
+
getAgreementPreSignedUrl
|
|
24
36
|
};
|
|
@@ -1,6 +1,10 @@
|
|
|
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');
|
|
4
8
|
|
|
5
9
|
const createAgreement = (createAgreementModel, context) => {
|
|
6
10
|
validateType(createAgreementModel, CreateAgreementModel);
|
|
@@ -11,7 +15,52 @@ const deleteAgreement = (recordId, context) => {
|
|
|
11
15
|
return agreementAPI.deleteAgreement(recordId, context);
|
|
12
16
|
};
|
|
13
17
|
|
|
18
|
+
const getAgreementPreSignedUrl = (recordId, context, { filePath }) => {
|
|
19
|
+
const formData = new FormData();
|
|
20
|
+
const file = fs.createReadStream(filePath);
|
|
21
|
+
formData.append('recordId', recordId);
|
|
22
|
+
formData.append('fileType', 'CONTRACT');
|
|
23
|
+
formData.append('file', file);
|
|
24
|
+
|
|
25
|
+
return agreementAPI.getAgreementPreSignedUrl(formData, context);
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
const uploadAgreementToS3 = (preSignedUrl, file) => {
|
|
29
|
+
return agreementAPI.uploadAgreementToS3(preSignedUrl, file);
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
const uploadAgreement = async (
|
|
33
|
+
recordId,
|
|
34
|
+
filePath,
|
|
35
|
+
uploaderId,
|
|
36
|
+
context,
|
|
37
|
+
{ contractorDateModified } = {}
|
|
38
|
+
) => {
|
|
39
|
+
const { data: { preSignedUrl, fileName: fullFilePath } } = await getAgreementPreSignedUrl(recordId, context, { filePath });
|
|
40
|
+
|
|
41
|
+
const uploadResults = await uploadAgreementToS3(preSignedUrl, filePath);
|
|
42
|
+
|
|
43
|
+
if (uploadResults.status !== httpResponseStatusCodes.OK) {
|
|
44
|
+
throw new Error(`Failed to upload agreement for to S3 for contractor ${recordId}`);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
const createAgreementModel = new CreateAgreementModel({
|
|
48
|
+
contractorId: recordId,
|
|
49
|
+
contractorDateModified,
|
|
50
|
+
uploaderId,
|
|
51
|
+
signedContractName: fullFilePath
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
const createResponse = await createAgreement(createAgreementModel, context);
|
|
55
|
+
|
|
56
|
+
if (createResponse.status !== httpResponseStatusCodes.OK) {
|
|
57
|
+
throw new Error(`Failed to upload agreement for contractor ${recordId}`);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
return createResponse;
|
|
61
|
+
};
|
|
14
62
|
module.exports = {
|
|
15
63
|
createAgreement,
|
|
16
|
-
deleteAgreement
|
|
64
|
+
deleteAgreement,
|
|
65
|
+
uploadAgreement
|
|
17
66
|
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
const { UPLOADER_TYPE } = require('../consts/consts');
|
|
2
2
|
|
|
3
3
|
class CreateAgreementModel {
|
|
4
|
-
constructor({ contractorId, contractorDateModified, uploaderId, signedContractName, uploaderType = UPLOADER_TYPE.USER }) {
|
|
4
|
+
constructor({ contractorId, contractorDateModified = null, uploaderId, signedContractName, uploaderType = UPLOADER_TYPE.USER }) {
|
|
5
5
|
this.contractorId = contractorId;
|
|
6
6
|
this.contractorDateModified = contractorDateModified;
|
|
7
7
|
this.uploaderId = uploaderId;
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
const requests = require('../../../../common/requests/cookieAuth/requests');
|
|
2
|
-
const { backendUrl } = require('../../../../env').getEnv();
|
|
3
|
-
|
|
4
|
-
const Endpoints = {
|
|
5
|
-
getCustomizationsByAccountId: accountId => `${backendUrl}/saas/email-customizations?accountId=${accountId}`,
|
|
6
|
-
deleteById: id => `${backendUrl}/saas/email-customization/${id}/permanently`
|
|
7
|
-
};
|
|
8
|
-
|
|
9
|
-
const getEmailCustomizationsByAccountId = (accountId, context) => {
|
|
10
|
-
return requests.getRequestHandler(Endpoints.getCustomizationsByAccountId(accountId), {}, context);
|
|
11
|
-
};
|
|
12
|
-
|
|
13
|
-
const deleteEmailCustomizationById = (id, context) => {
|
|
14
|
-
return requests.deleteRequestHandler(Endpoints.deleteById(id), context);
|
|
15
|
-
};
|
|
16
|
-
|
|
17
|
-
module.exports = {
|
|
18
|
-
getEmailCustomizationsByAccountId,
|
|
19
|
-
deleteEmailCustomizationById
|
|
20
|
-
};
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
const httpResponseStatusCodes = require('../../../../common/httpResponseStatusCodes.json');
|
|
2
|
-
|
|
3
|
-
const emailCustomizationApi = require('./email.customization.api');
|
|
4
|
-
|
|
5
|
-
const getEmailCustomizationsByAccountId = async (accountId, context) => {
|
|
6
|
-
const resp = await emailCustomizationApi.getEmailCustomizationsByAccountId(accountId, context);
|
|
7
|
-
|
|
8
|
-
if (resp.status !== httpResponseStatusCodes.OK) {
|
|
9
|
-
throw new Error(`Failed to get email customization by account id ${accountId}`);
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
return resp.data;
|
|
13
|
-
};
|
|
14
|
-
|
|
15
|
-
const deleteEmailCustomizationById = async (id, context) => {
|
|
16
|
-
const resp = await emailCustomizationApi.deleteEmailCustomizationById(id, context);
|
|
17
|
-
|
|
18
|
-
if (resp.status !== httpResponseStatusCodes.OK) {
|
|
19
|
-
throw new Error(`Failed to delete email customization by id ${id}`);
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
return resp;
|
|
23
|
-
};
|
|
24
|
-
|
|
25
|
-
const deleteAllEmailCustomizationsInAccount = async (accountId, context) => {
|
|
26
|
-
const customizationList = await getEmailCustomizationsByAccountId(accountId, context);
|
|
27
|
-
|
|
28
|
-
for (const customization of customizationList) {
|
|
29
|
-
if (customization.id) {
|
|
30
|
-
await deleteEmailCustomizationById(customization.id, context);
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
};
|
|
34
|
-
|
|
35
|
-
module.exports = {
|
|
36
|
-
getEmailCustomizationsByAccountId,
|
|
37
|
-
deleteEmailCustomizationById,
|
|
38
|
-
deleteAllEmailCustomizationsInAccount
|
|
39
|
-
};
|