Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Tratamento de error quando o id relacional não existir

Tendo em vista essa questão sobre o fato do id relacionado não existir, como podemos fazer o tratamento desse erro ? Eu faço uma verificação no controller/serviço que verifica se o categoria_id existe ou há uma outra maneira? Exemplo: Criei um curso porem a categoria_id não existe/não foi cadastrado.

1 resposta
solução!

Olá, Leonardo.

Tudo bem?

Essa ideia de tratar o erro quando o categoria_id não existir, é uma boa prática fazer essa verificação no seu controller ou serviço antes de tentar criar o curso. Isso evita inserir dados inconsistentes no banco de dados. Vou te mostrar um exemplo de como isso pode ser feito na controller.

Primeiro, você pode criar um serviço que verifica se a categoria existe:

// services/categoriaService.js
const { Categoria } = require('../models');

async function categoriaExiste(categoriaId) {
  const categoria = await Categoria.findByPk(categoriaId);
  return !!categoria; // Retorna true se a categoria existir, false caso contrário
}

module.exports = { categoriaExiste };

Depois, no seu controller de cursos, você pode usar esse serviço para verificar a existência da categoria antes de criar o curso:

// controllers/cursoController.js
const { Curso } = require('../models');
const { categoriaExiste } = require('../services/categoriaService');

async function criarCurso(req, res) {
  const { titulo, descricao, data_inicio, categoria_id, docente_id } = req.body;

  const categoriaValida = await categoriaExiste(categoria_id);
  if (!categoriaValida) {
    return res.status(400).json({ error: 'Categoria não existe' });
  }

  try {
    const novoCurso = await Curso.create({
      titulo,
      descricao,
      data_inicio,
      categoria_id,
      docente_id,
    });
    return res.status(201).json(novoCurso);
  } catch (error) {
    return res.status(500).json({ error: 'Erro ao criar curso' });
  }
}

module.exports = { criarCurso };

Neste exemplo, o método categoriaExiste verifica se a categoria com o id fornecido existe no banco de dados. Se não existir, uma resposta com status 400 é enviada, informando que a categoria não existe.

Veja se faz sentido. Qualquer dúvida manda aqui.

Espero ter ajudado e bons estudos.