From 4989877f682a2cff3d3545779016cd52f589c511 Mon Sep 17 00:00:00 2001 From: doug-martin Date: Sun, 23 Feb 2020 14:09:11 -0600 Subject: [PATCH] Fixed issue31 * [FIXED] Can't remove on Many-To-Many relations [#31] --- HISTORY.md | 17 +++++++++++++++-- .../services/typeorm-query.service.spec.ts | 4 ++-- .../src/services/relation-query.service.ts | 4 ++-- 3 files changed, 19 insertions(+), 6 deletions(-) diff --git a/HISTORY.md b/HISTORY.md index f228f4f10..afa4341aa 100644 --- a/HISTORY.md +++ b/HISTORY.md @@ -1,10 +1,23 @@ -# 0.3.1 +# v0.3.4 + +* [FIXED] Can't remove on Many-To-Many relations [#31](https://github.com/doug-martin/nestjs-query/issues/31) + +# v0.3.3 + +* Update typescript to 3.8. +* Update dependency versions. + +# v0.3.2 + +* Switched to github actions + +# v0.3.1 * Hardened TypeORM querying * Added filter for entity ids on relations to prevent querying for too many rows. * Qualify all filter and sorting columns, to prevent column name collisions. -# 0.3.0 +# v0.3.0 * Added dataloader support! * Fixed issue with loading of many-to-many relations [#22](https://github.com/doug-martin/nestjs-query/issues/22) diff --git a/packages/query-typeorm/__tests__/services/typeorm-query.service.spec.ts b/packages/query-typeorm/__tests__/services/typeorm-query.service.spec.ts index 69cce1b3a..d156042e7 100644 --- a/packages/query-typeorm/__tests__/services/typeorm-query.service.spec.ts +++ b/packages/query-typeorm/__tests__/services/typeorm-query.service.spec.ts @@ -403,7 +403,7 @@ describe('TypeOrmQueryService', (): void => { when(entityQueryBuilder.relation(relationName)).thenReturn(instance(relationQueryBuilder)); when(relationQueryBuilder.of(objectContaining(entity))).thenReturn(instance(relationQueryBuilder)); when(relationQueryBuilder.remove(relationIds)).thenResolve(); - const queryResult = await queryService.removeRelations(entity.testEntityPk, relationName, relationIds); + const queryResult = await queryService.removeRelations(relationName, entity.testEntityPk, relationIds); expect(queryResult).toEqual(entity); }); }); @@ -422,7 +422,7 @@ describe('TypeOrmQueryService', (): void => { when(entityQueryBuilder.relation(relationName)).thenReturn(instance(relationQueryBuilder)); when(relationQueryBuilder.of(objectContaining(entity))).thenReturn(instance(relationQueryBuilder)); when(relationQueryBuilder.remove(relation.testRelationPk)).thenResolve(); - const queryResult = await queryService.removeRelation(entity.testEntityPk, relationName, relation.testRelationPk); + const queryResult = await queryService.removeRelation(relationName, entity.testEntityPk, relation.testRelationPk); expect(queryResult).toEqual(entity); }); }); diff --git a/packages/query-typeorm/src/services/relation-query.service.ts b/packages/query-typeorm/src/services/relation-query.service.ts index 84a223f68..3692c06c6 100644 --- a/packages/query-typeorm/src/services/relation-query.service.ts +++ b/packages/query-typeorm/src/services/relation-query.service.ts @@ -140,8 +140,8 @@ export abstract class RelationQueryService { * @param relationIds - The ids of the relations to add. */ async removeRelations( - id: string | number, relationName: string, + id: string | number, relationIds: (string | number)[], ): Promise { const entity = await this.repo.findOneOrFail(id); @@ -156,7 +156,7 @@ export abstract class RelationQueryService { * @param relationName - The name of the relation to query for. * @param relationId - The id of the relation to set on the entity. */ - async removeRelation(id: string | number, relationName: string, relationId: string | number): Promise { + async removeRelation(relationName: string, id: string | number, relationId: string | number): Promise { const entity = await this.repo.findOneOrFail(id); await this.createRelationQueryBuilder(entity, relationName).remove(relationId); return this.assembler.convertToDTO(entity);