crm-api-template-generator/backend/controllers/integrationController.js

40 lines
1.0 KiB
JavaScript

const { StatusCodes } = require("http-status-codes")
const { mustContainProperties } = require("../utils")
const Company = require("../models/Company")
const getIntegrationsConfig = require("../utils/getIntegrationsConfig")
const integration = async (req, res) => {
const { companyId } = req.params
const { config, name } = req.body
mustContainProperties(req, ['name', 'config'])
const company = await Company.findOne({ companyId })
if (!company) {
return res.status(StatusCodes.NOT_FOUND).send({ msg: "companyId not found!" })
}
const existingIntegrationIndex = company.integrations.findIndex(i => i.name === name)
if (existingIntegrationIndex !== -1) {
company.integrations[existingIntegrationIndex].config = config
} else {
company.integrations.push({ name, config })
}
await company.save()
res.status(StatusCodes.OK).send({
msg: 'Integração atualizada com sucesso',
integrations: company.integrations
})
}
module.exports = {
integration
}