Recently loopback team added support to the inclusion of nested relation. Reference https://loopback.io/doc/en/lb4/HasMany-relation.html#query-multiple-relations. But it doesn't cover the rest api url to get nested relations. This is what I have tried.
I have three models users, carts, products. Users have has-many carts and carts belongs-to product. My loopback/cli version is 1.27.0
user.repository.ts
constructor(
@inject('datasources.farm') dataSource: FarmDataSource, @repository.getter('CartRepository') protected cartRepositoryGetter: Getter<CartRepository>,
) {
super(Users, dataSource);
this.carts = this.createHasManyRepositoryFactoryFor('carts', cartRepositoryGetter,);
this.registerInclusionResolver('carts', this.carts.inclusionResolver);
}
cart.repository.ts
constructor(
@inject('datasources.farm') dataSource: FarmDataSource, @repository.getter('UsersRepository') protected usersRepositoryGetter: Getter<UsersRepository>, @repository.getter('ProductRepository') protected productRepositoryGetter: Getter<ProductRepository>,
) {
super(Cart, dataSource);
this.product = this.createBelongsToAccessorFor('product_id', productRepositoryGetter);
this.registerInclusionResolver('product', this.product.inclusionResolver);
this.users = this.createBelongsToAccessorFor('user_id', usersRepositoryGetter);
this.registerInclusionResolver('users', this.users.inclusionResolver);
}
}
product.repository.ts
constructor(
@inject('datasources.farm') dataSource: FarmDataSource, @repository.getter('PurchaseRepository') protected purchaseRepositoryGetter: Getter<PurchaseRepository>, @repository.getter('StockRepository') protected stockRepositoryGetter: Getter<StockRepository>, ) {
super(Product, dataSource);
this.registerInclusionResolver('stocks', this.stocks.inclusionResolver);
this.registerInclusionResolver('purchases', this.purchases.inclusionResolver);
}
Thanks in advance