1
resposta

findOrCreate

Como ficaria a findOrcreate com a separação de Controller e Services, poderiam me dar um exemplo pratico, Obrigado!

1 resposta

Oi, Giuliano, tudo bem?

Desculpe a demora em te responder!

Para utilizar o método findOrCreate do Sequelize com a separação de Controller e Services, podemos seguir o seguinte exemplo prático:

No Controller, chamamos o método findOrCreate do seu Service, passando os parâmetros necessários. Por exemplo:

const userService = require('../services/userService');

async function createUser(req, res) {
  const { name, email } = req.body;

  try {
    const user = await userService.findOrCreate(name, email);
    return res.status(201).json(user);
  } catch (err) {
    return res.status(500).json({ error: 'Internal server error' });
  }
}

Já no Service, implementaremos o método findOrCreate da seguinte forma:

const { User } = require('../models');

async function findOrCreate(name, email) {
  const [user, created] = await User.findOrCreate({
    where: { email },
    defaults: { name },
  });

  return { user, created };
}

module.exports = { findOrCreate };

Dessa forma, o método findOrCreate do seu Service irá buscar um usuário pelo e-mail e, caso não encontre, irá criar um novo usuário com o nome informado.

Espero ter ajudado. Caso tenha dúvidas, estarei à disposição. Abraços e bons estudos!

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