1
resposta

[Sugestão] Escopo de Modelo

Quando estudamos Escopo de Modelo, e colocamos o escopo padrão (default) para retornar somente possas ativas (ativo:true), deu problema ao atualizar (PUT) uma pessoa inativa (ativo:false), exatamente pelo padrar está pessoas ativas. para resolver fiz a inversão dos escopos, coloquei o padrão retornando todos (where: {}) e o espoco específico (scopes:...) chamei de ativas e retornei somente os ativos (ativas: {where: {ativo: true}}, com isso resolveu o problema do PUT. Lembrando que precisei alterar minhas rotas e meu controller Pessoas tbm.

Solução final: Model pessoas.js

` defaultScope:

{
  where: {}
},
scopes:
{
  ativas: {where: { ativo: true }}
},

pessoasRoutes.js .get('/pessoas/ativas', PessoaController.pegaPessoasAtivas) .get('/pessoas', PessoaController.pegaTodasAsPessoas) PessoaControler

static async pegaPessoasAtivas(req, res) {
    try {
        const pessoasAtivas = await database.Pessoas.scope('ativas').findAll();
        return res.status(200).json(pessoasAtivas);
    } catch (error) {
        return res.status(500).json(error.message);
    }
}

static async pegaTodasAsPessoas(req, res) {
    try {
        const todasAsPessoas = await database.Pessoas.findAll();
        return res.status(200).json(todasAsPessoas);
    } catch (error) {
        return res.status(500).json(error.message);
    }
}
1 resposta

Olá, Eduardo, tudo bem?

De fato, isso é um detalhe que deve ser atentado ao construir os escopos do projeto, e foi muito bacana que você corrigiu o problema na sua aplicação. Muito obrigado por compartilhar sua solução conosco!

Abraços e bons estudos :)