@tasolutions/express-core
Version:
All libs for express
44 lines (36 loc) • 1.55 kB
JavaScript
const Response = require('../../utils/response');
const { mapHeadersToQuery } = require('../../utils/requestHeader');
const { parseFormData } = require('../../utils/collection.util');
const { uploadFiles } = require('../../utils/upload');
const { authInfo } = require('../../config');
module.exports = {
/**
* This crud create
*/
create: async (req, res, Collection) => {
try {
await mapHeadersToQuery(req, Collection);
if (req.userLogin && req.userLogin.userId) {
req.body.creatorId = req.userLogin.userId;
}
// Merchant
if (authInfo.enableMerchant && !req.isSystemAdmin && configs.isFilterMerchant) {
const { merchant } = req.headers;
req.body.merchant_id = merchant;
}
// Remove fields with empty string values from req.body
Object.keys(req.body).forEach((key) => {
if (req.body[key] === "") {
req.body[key] = null;
}
});
// Phân tích cú pháp req.body thành cấu trúc đối tượng
const parsedBody = parseFormData(req.body);
const newEntry = await uploadFiles(req, Collection);
const createdEntry = await Collection.create({ ...newEntry, ...parsedBody }); // Kết hợp các trường với parsedBody
return Response.success(res, createdEntry);
} catch (e) {
return Response.error(res, e.message);
}
}
}