Cambiando el dto user
// src/users/dtos/user.dto
export class CreateUserDto {
...
// Agregamos atributo
@IsOptional()
@IsNotEmpty()
@ApiProperty()
readonly customerId: number;
}
export class UpdateUserDto extends PartialType(CreateUserDto) {}
Modificando la funcion crear
Si el objeto contiene un customerId traemos los datos usando el servicio de customer
//src/users/services/user.service
async create(data: CreateUserDto) {
const newUser = this.userRepo.create(data);
if(data.customerId){
const customer = await this.customerService.findOne(data.customerId);
newUser.customer = customer;
}
return await this.userRepo.save(newUser);
}
Modificando la funcion find
Si queremos que cuando se consulte al usuario tambien se obtengan los datos del customer debemos agregar la siguiente opcion
async findAll() {
return await this.userRepo.find({
relations: ['customer'] // esta
});
}
async findOne(id: number) {
const user = await this.userRepo.findOne(id, {
relations: ['customer'] // esta
});
if (!user) {
throw new NotFoundException(`User #${id} not found`);
}
return user;
}
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?