UNPKG

@tasolutions/express-core

Version:
46 lines (38 loc) 1.74 kB
const Response = require('../../../../utils/response'); const { mapHeadersToQuery } = require('../../../../utils/requestHeader'); const { parseFormData } = require('../../../../utils/collection.util'); const { uploadFiles } = require('../../../../utils/upload'); const { DocumentTemplate } = require('../models'); module.exports = { /** * This crud create */ create: async (req, res, Collection) => { try { await mapHeadersToQuery(req, DocumentTemplate); // 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); // Validate key uniqueness nếu key được cung cấp if (parsedBody.key) { const existingTemplate = await DocumentTemplate.findOne({ key: parsedBody.key }); if (existingTemplate) { return Response.error(res, `Template with key '${parsedBody.key}' already exists`, 400); } } const newEntry = await uploadFiles(req, DocumentTemplate); const option = { collection_name: Collection.modelName, } const createdEntry = await DocumentTemplate.create({ ...newEntry, ...parsedBody, ...option }); // Kết hợp các trường với parsedBody return Response.success(res, createdEntry); } catch (e) { return Response.error(res, e.message); } } }