Olá pessoal, compartilhando aqui as minhas validações para os controladores:
//const fs = require("fs");
const {
getTodosLivros,
getLivroPorId,
insereLivro,
modificaLivro,
deletaLivro,
} = require("../servicos/livro");
function getLivros(req, res) {
try {
const livros = getTodosLivros();
if (Object.keys(livros).length !== 0) {
res.send(livros);
} else {
res.status(422);
res.send("Nada foi encontrado");
}
} catch (error) {
res.status(500);
res.send(error.message);
}
}
function getLivro(req, res) {
try {
const id = req.params.id;
if (id && Number(id)) {
const livro = getLivroPorId(id);
if (livro) {
res.send(livro);
} else {
res.status(422);
res.send("Id não encontrado");
}
} else {
res.status(422);
res.send("Id inválido");
}
} catch (error) {
res.status(500);
res.send(error.message);
}
}
function postLivro(req, res) {
try {
const livroNovo = req.body;
if (livroNovo.id && Number(livroNovo.id) && req.body.nome) {
const idTest = livroNovo.id;
if (!getLivroPorId(idTest)) {
insereLivro(livroNovo);
res.status(201);
res.send("Livro inserido com sucesso");
} else {
res.status(500);
res.send("Id já está em uso");
}
} else {
res.status(500);
res.send("Id/nome inválido");
}
} catch (error) {
res.status(500);
res.send(error.message);
}
}
function patchLivro(req, res) {
try {
const id = req.params.id;
const body = req.body;
if (id && Number(id)) {
if (getLivroPorId(id)) {
modificaLivro(body, id);
res.send("Informações modificadas com sucesso");
} else {
res.send("Id não encontrado");
}
} else {
res.send("Id inválido");
}
} catch (error) {
res.status(500);
res.send(error.message);
}
}
function deleteLivro(req, res) {
try {
const id = req.params.id;
if (id && Number(id)) {
if (getLivroPorId(id)) {
deletaLivro(id);
res.send("Livro apagado com sucesso");
} else {
res.status(422);
res.send("Id não encontrado");
}
} else {
res.status(422);
res.send("Id inválido ou não encontrado");
}
} catch (error) {
res.status(500);
res.send(error.message);
}
}
module.exports = {
getLivros,
getLivro,
postLivro,
patchLivro,
deleteLivro,
};