// Criei esse método para pegar o ID do post máximo relacionado a cada autor, ou seja, sempre vai pegar o ID do último POST criado.
async pegaUltimoId(idAutor) {
try {
const { id } = await dbGet('SELECT MAX(id) AS id FROM posts WHERE autor = ?', [idAutor]);
return id;
} catch (erro) {
throw new NaoEncontrado('Não existe ID para esse ator')
}
}
// No método adiciona atribui o retorno do POST adicionado a uma variável chamada post
// depois atribui o id para o this.id
// Coloquei o await para ter sempre certeza de que o POST foi criado e não acontecer de pegar o ID errado ou de retornar um ERRO
async adiciona () {
const post = await postsDao.adiciona(this);
this.id = await postsDao.pegaUltimoId(this.autor);
return post;
}
// No método adiciona do controlador está como no DICA DO INSTRUTOR
async adiciona (req, res, next) {
try {
req.body.autor = req.user.id
const post = new Post(req.body)
await post.adiciona()
const email = new EmailNotificaPost(req.user, post.id, post.titulo);
email.enviaEmail();
res.status(201).json(post)
} catch (erro) {
next(erro);
}
},
//