40 lines
1.0 KiB
JavaScript
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
|
|
}
|
|
|
|
|
|
|