1
resposta

[Bug] Erro ao consultar matrículas

Oi, fiz exatamente igual a instrutora, mas ao consultar no postman, fica carregando mas dá erro ao tentar fazer uma consulta /pessoas/:estudanteId/matriculas Insira aqui a descrição dessa imagem para ajudar na acessibilidadePessoaController.js

const Controller = require('./Controller.js');
const PessoaService = require('../services/PessoaService.js');

const pessoaService = new PessoaService();

class PessoaController extends Controller {
  constructor(){
    super(pessoaService);
  }

  async pegaMatriculas(req, res) {
    const { estudanteId } = req.params;
    try {
      const listaMatriculas = await pessoaService.pegaMatriculasPorEstudante(Number(estudanteId));
      return res.status(200).json(listaMatriculas);
    } catch (erro) {
      // erro
    }
  }
}

module.exports = PessoaController;

PessoaService.js

const Service = require('./Services.js');

class PessoasService extends Service {
  constructor(){
    super('Pessoa');
  }

  async pegaMatriculasPorEstudante(id) {
    const estudante = await super.pegaUmRegistroPorId(id);
    const listaMatriculas = await estudante.getAulasMatriculadas();
    return listaMatriculas;
  }
}

module.exports = PessoasService;

pessoasRoutes.js

const { Router } = require('express');
const PessoaController = require('../controllers/PessoaController');
const MatriculaController = require('../controllers/MatriculaController.js');

const pessoaController = new PessoaController();
const matriculaController = new MatriculaController();

const router = Router();

router.get('/pessoas', (req, res) => pessoaController.pegaTodos(req, res));
router.get('/pessoas/:id', (req, res) => pessoaController.pegaUmPorId(req, res));
router.post('/pessoas', (req, res) => pessoaController.criaNovo(req, res));
router.put('/pessoas/:id', (req, res) => pessoaController.atualiza(req, res));
router.delete('/pessoas/:id', (req, res) => pessoaController.exclui(req, res));
router.get('/pessoas/:estudanteId/matriculas', (req, res) => pessoaController.pegaMatriculas(req, res));
router.post('/pessoas/:estudanteId/matriculas', (req, res) => matriculaController.criaNovo(req, res));

module.exports = router;

terminal: Insira aqui a descrição dessa imagem para ajudar na acessibilidade Já tentei com outros Ids e dá erro, alguem poderia me ajudar?

1 resposta

Olá, Walace! Tudo bem?

O problema pode estar relacionado a alguns pontos, então vamos verificar alguns deles:

  1. Verifique as Associações: No modelo pessoa.js, certifique-se de que a associação com Matricula está configurada corretamente com o scope e as definidos, como no exemplo do contexto.

  2. Método getAulasMatriculadas: Verifique se o método getAulasMatriculadas está sendo chamado corretamente. Isso depende do alias as: 'aulasMatriculadas' definido na associação.

  3. Tratamento de Erros: No método pegaMatriculas, adicione um console.log(erro) dentro do bloco catch para capturar qualquer erro específico que possa estar ocorrendo.

  4. Banco de Dados: Certifique-se de que o banco de dados está populado corretamente e que o estudanteId passado existe e possui matrículas associadas.

  5. Iniciar o Servidor: Reinicie o servidor após qualquer alteração para garantir que as mudanças sejam aplicadas.

Se tudo estiver configurado corretamente e o problema persistir, pode ser útil que você compartilhe todo o seu projeto usando o GitHub ou Drive do Google para que eu possa analisar e testar o código.

Espero ter ajudado e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.