1
resposta

O ID do post está retornando como undefined (SOLUÇÃO)

  // 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);
    }
  },
  // 
1 resposta

Oi Marco, não sei se entendi, mas o autor do post sempre será o ator do último post que foi salvo? Se eu tiver mais de um autor isso não vai salvar o post com um autor diferente do que deveria ser salvo?

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software