1
resposta

Como ocultar um parametro de um objeto user ao listar projetct

Estou em um projeto usando nestjs que tenho uma entidade project e outra user . A entidade project recebe um array de users e quando vou listar todos os projetos, também lista todos os usuarios daquele projeto. Como faço para esconder um dos parametros do user. Para lista os projetos uso:

findAll(user : UserDto) {
if (user.role != 1) return {
status: "error",
code: 401,
message: "voce nao possui permissão para ver todos os usuários"
}
return this.repo.find();
}

async findOne(id: number) {
// a funcao inclui os resultados de users no projeto.
return await this.repo.findOneOrFail({
where: { id: id },
relations: ['users'],
})
}
1 resposta

Olá, Murilo! Tudo bem com você?

Desde já peço desculpa pela demora em responder o seu tópico.

Para ocultar um parâmetro do objeto user ao listar os projetos, você pode utilizar a função select do TypeORM para especificar quais campos deseja retornar na consulta.

Por exemplo, se você deseja ocultar o parâmetro password do objeto user, você pode modificar a função findOne da seguinte forma:

async findOne(id: number) {
  return await this.repo.findOneOrFail({
    where: { id: id },
    relations: ['users'],
    select: ['id', 'name', 'email'] // lista apenas os campos que deseja retornar
  });
}

Assim, apenas os campos id, name e email serão retornados na consulta, ocultando o parâmetro password.

Espero ter ajudado. Caso tenha mais dúvidas, relacionadas com este tópico, estarei à disposição para ajudá-lo,

Grande abraço e bons estudos!

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