From 4f7e75fd1a35b888077b6d4106437c9859878d63 Mon Sep 17 00:00:00 2001 From: wayanrivan Date: Tue, 14 Apr 2026 11:06:44 +0700 Subject: [PATCH] update room to pharmacy --- src/controllers/room_to_pharmacy.ts | 50 +++++++++++++---------------- 1 file changed, 23 insertions(+), 27 deletions(-) diff --git a/src/controllers/room_to_pharmacy.ts b/src/controllers/room_to_pharmacy.ts index 814386e..7ded4b1 100644 --- a/src/controllers/room_to_pharmacy.ts +++ b/src/controllers/room_to_pharmacy.ts @@ -324,22 +324,14 @@ export class RoomToPharmacyController { */ try { const schema = Joi.object().keys({ - room_id: Joi.string() - .uuid() - .required() - .label("Room ID"), - + .uuid() + .required() + .label("Room ID"), pharmacy_room_id: Joi.string() - .uuid() - .required() - .label("Pharmacy Room ID"), - - // room_ids: Joi.array() - // .items(Joi.string().uuid().required()) - // .min(1) - // .required() - // .label("Room IDs") + .uuid() + .required() + .label("Pharmacy Room ID"), }); req.body.room_id = req.params['room_id']; @@ -347,27 +339,31 @@ export class RoomToPharmacyController { const param: any = await schema.validateAsync(req.body); const repo = OrmHelper.DB.getRepository(RoomToPharmacy); - - let data = await repo.findOneBy({ room: param.room_id, pharmacy_room: param.pharmacy_room_id }); + + let data = await repo.findOneBy({ + room: { id: param.room_id }, + pharmacy_room: { id: param.pharmacy_room_id } + }); if (data != null) { - data.room = param.room_id; - data.pharmacy_room = param.pharmacy_room_id; - data.updated_by = req.auth.data.name; - + data.updated_by = req.auth?.data.name; await repo.save(data); } else { - data = new RoomToPharmacy() - data.room = param.room_id; - data.pharmacy_room = param.pharmacy_room_id; - data.created_by = req.auth.data.name; - data.updated_by = req.auth.data.name; + const room = await OrmHelper.DB.getRepository(Room).findOneBy({ id: param.room_id }); + if (!room) throw { message: "Room not found" }; + + const pharmacyRoom = await OrmHelper.DB.getRepository(Room).findOneBy({ id: param.pharmacy_room_id }); + if (!pharmacyRoom) throw { message: "Pharmacy Room not found" }; + + data = new RoomToPharmacy(); + data.room = room; + data.pharmacy_room = pharmacyRoom; + data.created_by = req.auth?.data.name; + data.updated_by = req.auth?.data.name; await OrmHelper.DB.manager.save(data); } - data = await repo.findOneBy({ room: param.room_id, pharmacy_room: param.pharmacy_room_id }); - return ReturnHelper.successResponseAny(res, 200, Language.lang.success_update, data); } catch (e: unknown) { log.error(e);