Merge branch 'feature/IO-3066-ems-upload' into hotfix/2025-05-15
This commit is contained in:
@@ -5,3 +5,4 @@ exports.claimscorp = require("./claimscorp").default;
|
|||||||
exports.kaizen = require("./kaizen").default;
|
exports.kaizen = require("./kaizen").default;
|
||||||
exports.usageReport = require("./usageReport").default;
|
exports.usageReport = require("./usageReport").default;
|
||||||
exports.podium = require("./podium").default;
|
exports.podium = require("./podium").default;
|
||||||
|
exports.emsUpload = require("./emsUpload").default;
|
||||||
22
server/data/emsUpload.js
Normal file
22
server/data/emsUpload.js
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
const moment = require("moment-timezone");
|
||||||
|
const logger = require("../utils/logger");
|
||||||
|
const s3Client = require("../utils/s3"); // Using the S3 client utilities with LocalStack support
|
||||||
|
|
||||||
|
const emsUpload = async (req, res) => {
|
||||||
|
try {
|
||||||
|
const { bodyshopid, ciecaid, clm_no, ownr_ln } = req.body;
|
||||||
|
const presignedUrl = await s3Client.getPresignedUrl({
|
||||||
|
bucketName: process.env.S3_EMS_UPLOAD_BUCKET,
|
||||||
|
key: `${bodyshopid}/${ciecaid}-${clm_no}-${ownr_ln}-${moment().format("YYYY-MM-DD--HH-mm-ss")}.zip`
|
||||||
|
});
|
||||||
|
res.status(200).json({ presignedUrl });
|
||||||
|
} catch (error) {
|
||||||
|
logger.log("usage-report-email-error", "ERROR", req?.user?.email, null, {
|
||||||
|
error: error.message,
|
||||||
|
stack: error.stack
|
||||||
|
});
|
||||||
|
res.status(500).json({ error: error.message, stack: error.stack });
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
exports.default = emsUpload;
|
||||||
@@ -138,6 +138,9 @@ router.post("/canvastest", validateFirebaseIdTokenMiddleware, canvastest);
|
|||||||
// Alert Check
|
// Alert Check
|
||||||
router.post("/alertcheck", eventAuthorizationMiddleware, alertCheck);
|
router.post("/alertcheck", eventAuthorizationMiddleware, alertCheck);
|
||||||
|
|
||||||
|
//EMS Upload
|
||||||
|
router.post("/emsupload", validateFirebaseIdTokenMiddleware, data.emsUpload);
|
||||||
|
|
||||||
// Redis Cache Routes
|
// Redis Cache Routes
|
||||||
router.post("/bodyshop-cache", eventAuthorizationMiddleware, updateBodyshopCache);
|
router.post("/bodyshop-cache", eventAuthorizationMiddleware, updateBodyshopCache);
|
||||||
|
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ const {
|
|||||||
const { defaultProvider } = require("@aws-sdk/credential-provider-node");
|
const { defaultProvider } = require("@aws-sdk/credential-provider-node");
|
||||||
const { InstanceRegion } = require("./instanceMgr");
|
const { InstanceRegion } = require("./instanceMgr");
|
||||||
const { isString, isEmpty } = require("lodash");
|
const { isString, isEmpty } = require("lodash");
|
||||||
|
const { getSignedUrl } = require("@aws-sdk/s3-request-presigner");
|
||||||
|
|
||||||
const createS3Client = () => {
|
const createS3Client = () => {
|
||||||
const S3Options = {
|
const S3Options = {
|
||||||
@@ -95,6 +96,17 @@ const createS3Client = () => {
|
|||||||
throw error;
|
throw error;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const getPresignedUrl = async ({ bucketName, key }) => {
|
||||||
|
const command = new PutObjectCommand({
|
||||||
|
Bucket: bucketName,
|
||||||
|
Key: key,
|
||||||
|
StorageClass: "INTELLIGENT_TIERING"
|
||||||
|
});
|
||||||
|
const presignedUrl = await getSignedUrl(s3Client, command, { expiresIn: 360 });
|
||||||
|
return presignedUrl;
|
||||||
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
uploadFileToS3,
|
uploadFileToS3,
|
||||||
downloadFileFromS3,
|
downloadFileFromS3,
|
||||||
@@ -102,8 +114,12 @@ const createS3Client = () => {
|
|||||||
deleteFileFromS3,
|
deleteFileFromS3,
|
||||||
copyFileInS3,
|
copyFileInS3,
|
||||||
fileExistsInS3,
|
fileExistsInS3,
|
||||||
|
getPresignedUrl,
|
||||||
...s3Client
|
...s3Client
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
module.exports = createS3Client();
|
module.exports = createS3Client();
|
||||||
|
|||||||
Reference in New Issue
Block a user