Aún no tienes acceso a esta clase

Crea una cuenta y continúa viendo este curso

Resolviendo la relación uno a muchos en el controlador

21/33
Recursos

Aportes 4

Preguntas 3

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.

En el servicio para una marca por Id, falta colocar la condición (where) para que busque el Id que enviamos. Quedaría así:

const product = await this.brandsRepo.findOne({
      relations: ['products'],
      where: {
        id,
      },
});

Dejo una pequeña validacion para manejar los errores del create:

async create(payload: CreateProductDto) {
    const newProduct = this.productRepo.create(payload);
    if (payload.brandId) {
      const brand = await this.brandService.findOne(payload.brandId);
      newProduct.brand = brand;
    }
    const product = this.productRepo
      .save(newProduct)
      .then((res) => {
        return res;
      })
      .catch((err) => {
        throw new BadRequestException(`${err.message || 'Unexpected Error'}`);
      });

    return product;
  }

me parece o ese findOne() deberia tener un id en el primer parámetro?, es decir:

const product = await this.brandRepo.findOne(id, {
            relations: ['products']
        });

Saben si usando consultas sql o typeorm seria encesario poner el relations?