From e6654979cd885ee3230b8503218ecf03f173fd85 Mon Sep 17 00:00:00 2001 From: Vincent Alamelle Date: Tue, 9 May 2023 15:37:27 +0200 Subject: [PATCH] update deed functional --- src/app/api/super-admin/DeedsController.ts | 16 +++++++++++----- src/common/repositories/DeedsRepository.ts | 12 +++++++++--- .../super-admin/DeedsService/DeedsService.ts | 4 ++-- 3 files changed, 22 insertions(+), 10 deletions(-) diff --git a/src/app/api/super-admin/DeedsController.ts b/src/app/api/super-admin/DeedsController.ts index 8dc14408..f8ff9da7 100644 --- a/src/app/api/super-admin/DeedsController.ts +++ b/src/app/api/super-admin/DeedsController.ts @@ -49,8 +49,15 @@ export default class DeedsController extends ApiController { throw new Error("No uid provided"); } - //call service to get prisma entity - const deedEntity: Deeds = await this.deedsService.getByUid(uid); + let deedEntity: Deeds; + //get query + if (req.query["q"]) { + const query = JSON.parse(req.query["q"] as string); + deedEntity = await this.deedsService.getByUid(uid, query); + } else { + //call service to get prisma entity + deedEntity = await this.deedsService.getByUid(uid); + } //Hydrate ressource with prisma entity const deed = Deed.hydrate(deedEntity, { strategy: "excludeAll" }); @@ -61,7 +68,6 @@ export default class DeedsController extends ApiController { this.httpBadRequest(response, error); return; } - this.httpSuccess(response, await this.deedsService.getByUid("uid")); } /** @@ -76,9 +82,9 @@ export default class DeedsController extends ApiController { } //init OfficeFolder resource with request body values const deedEntity = Deed.hydrate(req.body); - + //validate folder - await validateOrReject(deedEntity, { groups: ["updateDeed"], forbidUnknownValues: false }); + await validateOrReject(deedEntity, { groups: ["updateDeed"], forbidUnknownValues: false }); //call service to get prisma entity const prismaEntityUpdated = await this.deedsService.update(uid, deedEntity); diff --git a/src/common/repositories/DeedsRepository.ts b/src/common/repositories/DeedsRepository.ts index dcbe3203..79a836a8 100644 --- a/src/common/repositories/DeedsRepository.ts +++ b/src/common/repositories/DeedsRepository.ts @@ -72,6 +72,8 @@ export default class DeedsRepository extends BaseRepository { deed_has_document_types: true, }, }; + console.log(deed.deed_has_document_types); + if (deed.deed_has_document_types) { updateArgs.data.deed_has_document_types = { deleteMany: { deed_uid: uid }, @@ -89,12 +91,16 @@ export default class DeedsRepository extends BaseRepository { /** * @description : Find unique deed */ - public async findOneByUid(uid: string): Promise { - const deedTypeEntity = await this.model.findUnique({ + public async findOneByUid(uid: string, query?: any): Promise { + const findOneArgs: Prisma.DeedsFindUniqueArgs = { where: { uid: uid, }, - }); + }; + if (query) { + findOneArgs.include = query; + } + const deedTypeEntity = await this.model.findUnique(findOneArgs); if (!deedTypeEntity) { throw new Error("deed not found"); diff --git a/src/services/super-admin/DeedsService/DeedsService.ts b/src/services/super-admin/DeedsService/DeedsService.ts index bb133369..93a6c6bd 100644 --- a/src/services/super-admin/DeedsService/DeedsService.ts +++ b/src/services/super-admin/DeedsService/DeedsService.ts @@ -38,7 +38,7 @@ export default class DeedsService extends BaseService { * @description : Get a deed by uid * @throws {Error} If deed-type cannot be get by uid */ - public async getByUid(uid: string) { - return this.deedRepository.findOneByUid(uid); + public async getByUid(uid: string, query?: any) { + return this.deedRepository.findOneByUid(uid, query); } }