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!