1
resposta

Não consegui implementar o filtro de busca

Link do repositório no github: https://github.com/MarcosLucasVieira/Portifolio

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

1 resposta

Olá Marcos! Tudo bem?

Ao olhar o seu projeto não identifiquei nenhum método em medicosController que serie um método de busca, então implementei um do 0 para usar como exemplo para você.

static async listarMedicoPorNome(req, res, next) {
    try {
        const nome = req.query.nome;
        const medicoEncontrado = await medicos.find({ nome: new RegExp(nome, "i") }); // busca case-insensitive

        if (medicoEncontrado.length > 0) {
            res.status(200).send(medicoEncontrado);
        } else {
            next(new NaoEncontrado("NOME DO MEDICO(A) NÃO LOCALIZADO"));
        }
    } catch (erro) {
        next(erro);
    }
}

O seu medicosRoutes deve ser atualizado também, para adicionar uma nova rota para chamar esse método:

routes.get("/medicos", MedicoController.listarMedicos);
routes.get("/medicos/:id", MedicoController.listarMedicoPorId);
routes.get("/medicos/busca", MedicoController.listarMedicoPorNome); // Corrigida a rota de busca por nome
routes.post("/medicos", MedicoController.cadastrarMedicos);
routes.post("/medicos/:id", MedicoController.atualizarMedico); 
routes.delete("/medicos/:id", MedicoController.deletarMedico);

Por fim, o link de busca que você deve utilizar é o seguinte: "http://127.0.0.1:3000/medicos/busca?nome=Carlos"

Espero ter ajudado e bons estudos!

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