1
resposta

[Dúvida] duvida de verificacao

to tentando verificar a partir de um id de um transporte se esse cliente que ta sendo criado o nome e mail ja nao existem, mas algo ta dando errado, e o id no findOneBy ta dando erro de compatibilidade("O tipo 'transportEntity' não pode ser atribuído ao tipo 'string")

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

1 resposta

Olá, John!

Pelo que pude observar no seu código e na mensagem de erro que você mencionou, parece que há um desencontro de tipos entre o que a função findOneBy do seu repositório espera receber e o que você está passando para ela.

No método nomeExistente, você definiu o parâmetro id como sendo do tipo transportEntity, mas o método findOneBy do repositório provavelmente espera um valor primitivo, como uma string ou número, que corresponderia ao ID do transporte. Para corrigir isso, você deve garantir que o valor passado para findOneBy seja do tipo correto.

Aqui está um exemplo de como você poderia ajustar o código:

private async nomeExistente(id: string, nome: string) {
  const transporte = await this.transporteRepository.findOneBy({ id });
  const achar = transporte?.cliente.nome;
  if (achar === nome) {
    throw new BadRequestException('error');
  }
  return achar;
}

async criaCliente(id: string, cliente: criarClienteDTO) {
  const transporte = await this.procuraTransporteId(id);
  const verifica = await this.nomeExistente(id, cliente.nome);
  if (!transporte) {
    throw new NotFoundException('nao achado');
  }
  if (verifica) {
    throw new BadRequestException(`nome ${cliente.nome}`);
  }
}

Note que alterei o tipo do parâmetro id para string no método nomeExistente e estou passando diretamente o id para o findOneBy. Além disso, certifique-se de que o método procuraTransporteId também esteja tratando o id corretamente e retornando a entidade apropriada.

Espero que essa sugestão resolva o problema que você está enfrentando. Lembre-se de verificar a documentação da biblioteca ou framework que você está usando para garantir que os tipos e métodos estão sendo utilizados corretamente. Espero ter ajudado e bons estudos!