ÿØÿà JFIF ` ` ÿþ
|
Server : Apache System : Linux cloud.heroica.com.br 4.18.0-553.36.1.el8_10.x86_64 #1 SMP Wed Jan 22 03:07:54 EST 2025 x86_64 User : farolpborg ( 1053) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /var/www/node_services/apicentralquestoes/src/services/ |
Upload File : |
const Assinatura = require("../models/Assinatura");
const Planos = require("../models/Plano");
const assinaturaValidations = require("../validations/assinaturaValidations");
const MENSAGENS_ERRO = require("../utils/mensagensErro");
const assinaturaService = {
atualizarAssinatura: async (userId, novaAssinaturaId) => {
const erroValidacao = assinaturaValidations.validarEntradaAssinatura(
userId,
novaAssinaturaId
);
if (erroValidacao) return erroValidacao;
try {
const novaAssinatura = await Planos.findByPk(novaAssinaturaId);
if (!novaAssinatura) {
return {
erro: 404,
mensagem: MENSAGENS_ERRO.ASSINATURA_NAO_ENCONTRADA,
};
}
const expiresAt = new Date(Date.now() + 30 * 24 * 60 * 60 * 1000);
const [atualizado] = await Assinatura.update(
{
plano_id: novaAssinaturaId,
expires_at: expiresAt,
status: "active",
},
{
where: { user_id: userId },
}
);
if (atualizado === 0) {
return { erro: 404, mensagem: MENSAGENS_ERRO.INSCRICAO_NAO_ENCONTRADA };
}
const assinaturaAtualizada = await Assinatura.findOne({
where: { user_id: userId, status: "active" },
});
return {
mensagem: "Assinatura atualizada com sucesso",
assinatura: assinaturaAtualizada,
};
} catch (erro) {
return { erro: 500, mensagem: erro.message };
}
},
};
module.exports = assinaturaService;