From cc8d66ef8af809e01a4ad0576a3d7ee56c553f90 Mon Sep 17 00:00:00 2001 From: derdeka Date: Wed, 15 Jan 2020 15:36:20 +0100 Subject: [PATCH] feat(repository): hasManyThrough - add createHasManyThroughRepositoryFactoryFor --- .../src/repositories/legacy-juggler-bridge.ts | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/packages/repository/src/repositories/legacy-juggler-bridge.ts b/packages/repository/src/repositories/legacy-juggler-bridge.ts index 9fb433cce6e3..2f6e82533fc0 100644 --- a/packages/repository/src/repositories/legacy-juggler-bridge.ts +++ b/packages/repository/src/repositories/legacy-juggler-bridge.ts @@ -30,6 +30,9 @@ import { HasOneRepositoryFactory, includeRelatedModels, InclusionResolver, + HasManyThroughDefinition, + HasManyThroughRepositoryFactory, + createHasManyThroughRepositoryFactory, } from '../relations'; import {IsolationLevel, Transaction} from '../transaction'; import {isTypeResolver, resolveType} from '../type-resolver'; @@ -262,6 +265,29 @@ export class DefaultCrudRepository< ); } + protected createHasManyThroughRepositoryFactoryFor< + TargetEntiy extends Entity, + TargetID, + ThroughEntity extends Entity, + ThroughID, + >( + relationName: string, + targetRepositoryGetter: Getter>, + throughRepositoryGetter: Getter>, + ): HasManyThroughRepositoryFactory { + const meta = this.entityClass.definition.relations[relationName]; + return createHasManyThroughRepositoryFactory< + TargetEntiy, + TargetID, + ThroughEntity, + ThroughID + >( + meta as HasManyThroughDefinition, + targetRepositoryGetter, + throughRepositoryGetter, + ); + } + /** * @deprecated * Function to create a belongs to accessor