From 129cb6ad86913c22643c2e79fa185d327560a8db Mon Sep 17 00:00:00 2001 From: OxSaitama Date: Wed, 12 Jul 2023 12:39:58 +0200 Subject: [PATCH] refacto GET method with search param for folders --- src/app/api/admin/OfficeFoldersController.ts | 29 ++++++++++++++++ src/app/api/notary/OfficeFoldersController.ts | 29 ++++++++++++++++ .../super-admin/OfficeFoldersController.ts | 34 +++++++++++++++++-- .../OfficeMembershipHandlers/FolderHandler.ts | 2 -- .../repositories/OfficeFoldersRepository.ts | 5 +-- 5 files changed, 90 insertions(+), 9 deletions(-) diff --git a/src/app/api/admin/OfficeFoldersController.ts b/src/app/api/admin/OfficeFoldersController.ts index 0311e1fd..0e225ce3 100644 --- a/src/app/api/admin/OfficeFoldersController.ts +++ b/src/app/api/admin/OfficeFoldersController.ts @@ -28,6 +28,35 @@ export default class OfficeFoldersController extends ApiController { if (req.query["q"]) { query = JSON.parse(req.query["q"] as string); } + + if (req.query["search"] && typeof req.query["search"] === "string") { + const filter = req.query["search"]; + query = { + where: { + OR: [ + { + name: { contains: filter, mode: "insensitive" }, + }, + { + folder_number: { contains: filter, mode: "insensitive" }, + }, + { + customers: { + some: { + contact: { + OR: [ + { first_name: { contains: filter, mode: "insensitive" } }, + { last_name: { contains: filter, mode: "insensitive" } }, + ], + }, + }, + }, + }, + ], + }, + }; + } + const officeId: string = req.body.user.office_Id; const officeWhereInput: Prisma.OfficesWhereInput = { uid: officeId } ; if(!query.where) query.where = { office: officeWhereInput}; diff --git a/src/app/api/notary/OfficeFoldersController.ts b/src/app/api/notary/OfficeFoldersController.ts index 6ab29975..d4e0f6ff 100644 --- a/src/app/api/notary/OfficeFoldersController.ts +++ b/src/app/api/notary/OfficeFoldersController.ts @@ -28,6 +28,35 @@ export default class OfficeFoldersController extends ApiController { if (req.query["q"]) { query = JSON.parse(req.query["q"] as string); } + + if (req.query["search"] && typeof req.query["search"] === "string") { + const filter = req.query["search"]; + query = { + where: { + OR: [ + { + name: { contains: filter, mode: "insensitive" }, + }, + { + folder_number: { contains: filter, mode: "insensitive" }, + }, + { + customers: { + some: { + contact: { + OR: [ + { first_name: { contains: filter, mode: "insensitive" } }, + { last_name: { contains: filter, mode: "insensitive" } }, + ], + }, + }, + }, + }, + ], + }, + }; + } + const officeId: string = req.body.user.office_Id; const officeWhereInput: Prisma.OfficesWhereInput = { uid: officeId } ; if(!query.where) query.where = { office: officeWhereInput}; diff --git a/src/app/api/super-admin/OfficeFoldersController.ts b/src/app/api/super-admin/OfficeFoldersController.ts index 9e8278fd..dcd1b29c 100644 --- a/src/app/api/super-admin/OfficeFoldersController.ts +++ b/src/app/api/super-admin/OfficeFoldersController.ts @@ -28,11 +28,39 @@ export default class OfficeFoldersController extends ApiController { if (req.query["q"]) { query = JSON.parse(req.query["q"] as string); } + + if (req.query["search"] && typeof req.query["search"] === "string") { + const filter = req.query["search"]; + query = { + where: { + OR: [ + { + name: { contains: filter, mode: "insensitive" }, + }, + { + folder_number: { contains: filter, mode: "insensitive" }, + }, + { + customers: { + some: { + contact: { + OR: [ + { first_name: { contains: filter, mode: "insensitive" } }, + { last_name: { contains: filter, mode: "insensitive" } }, + ], + }, + }, + }, + }, + ], + }, + }; + } const officeId: string = req.body.user.office_Id; - const officeWhereInput: Prisma.OfficesWhereInput = { uid: officeId } ; - if(!query.where) query.where = { office: officeWhereInput}; + const officeWhereInput: Prisma.OfficesWhereInput = { uid: officeId }; + if (!query.where) query.where = { office: officeWhereInput }; query.where.office = officeWhereInput; - + //call service to get prisma entity const officeFolderEntities: OfficeFolders[] = await this.officeFoldersService.get(query); diff --git a/src/app/middlewares/OfficeMembershipHandlers/FolderHandler.ts b/src/app/middlewares/OfficeMembershipHandlers/FolderHandler.ts index 6c1ef63c..1b3de999 100644 --- a/src/app/middlewares/OfficeMembershipHandlers/FolderHandler.ts +++ b/src/app/middlewares/OfficeMembershipHandlers/FolderHandler.ts @@ -12,14 +12,12 @@ export default async function folderHandler(req: Request, response: Response, ne const deed = req.body.deed; if (office && office.uid != officeId) { - console.log("wrong office"); response.status(HttpCodes.UNAUTHORIZED).send("Unauthorized with this office"); return; } if (deed) { const deedTypeService = Container.get(DeedTypesService); - console.log("deed : ",deed); const deedTypeWithOffice = await deedTypeService.getByUidWithOffice(deed.deed_type.uid!); if (!deedTypeWithOffice) { response.status(HttpCodes.NOT_FOUND).send("Deed type not found"); diff --git a/src/common/repositories/OfficeFoldersRepository.ts b/src/common/repositories/OfficeFoldersRepository.ts index 43011a95..d391ef92 100644 --- a/src/common/repositories/OfficeFoldersRepository.ts +++ b/src/common/repositories/OfficeFoldersRepository.ts @@ -58,10 +58,7 @@ export default class OfficeFoldersRepository extends BaseRepository { /** * @description : Update data of an office folder */ - public async update( - officeFolderuid: string, - officeFolder: OfficeFolder, - ): Promise { + public async update(officeFolderuid: string, officeFolder: OfficeFolder): Promise { const updateArgs: Prisma.OfficeFoldersUpdateArgs = { where: { uid: officeFolderuid,