From f2cbbd44122e4657ac3746a9171a0228bdaf4c1a Mon Sep 17 00:00:00 2001 From: Muhammad Rayhan Ardiansyah Date: Mon, 13 Apr 2026 10:02:20 +0700 Subject: [PATCH] fixing room to pharmacy --- src/controllers/room_to_pharmacy.ts | 33 +++++++++++++++++++++-------- src/routes/private.ts | 6 +++--- src/swagger/builder.js | 2 +- 3 files changed, 28 insertions(+), 13 deletions(-) diff --git a/src/controllers/room_to_pharmacy.ts b/src/controllers/room_to_pharmacy.ts index afa8ed1..0455f0a 100644 --- a/src/controllers/room_to_pharmacy.ts +++ b/src/controllers/room_to_pharmacy.ts @@ -235,6 +235,13 @@ export class RoomToPharmacyController { #swagger.security = [{ "bearerAuth": [] }] + + #swagger.parameters['room_id'] = { + in: 'path', + description: 'Room ID.', + required: true, + type: 'string' + } #swagger.requestBody = { required: true, @@ -250,17 +257,15 @@ export class RoomToPharmacyController { try { const schema = Joi.object().keys({ - id: Joi.string().uuid().required().label('ID'), + room_id: Joi.string() + .uuid() + .required() + .label("Room ID"), pharmacy_room_id: Joi.string() .uuid() .required() .label("Pharmacy Room ID"), - - room_id: Joi.string() - .uuid() - .required() - .label("Room ID"), // room_ids: Joi.array() // .items(Joi.string().uuid().required()) @@ -269,22 +274,32 @@ export class RoomToPharmacyController { // .label("Room IDs") }); - req.body.id = req.params['id']; + req.body.room_id = req.params['room_id']; const param: any = await schema.validateAsync(req.body); const repo = OrmHelper.DB.getRepository(RoomToPharmacy); - const data = await repo.findOneBy({ id: param.id }); + let data = await repo.findOneBy({ room: param.room_id, pharmacy_room: param.pharmacy_room_id }); if (data != null) { - data.pharmacy_room = param.pharmacy_room_id; data.room = param.room_id; + data.pharmacy_room = param.pharmacy_room_id; 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; + + 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); diff --git a/src/routes/private.ts b/src/routes/private.ts index 7a61655..3901b8f 100644 --- a/src/routes/private.ts +++ b/src/routes/private.ts @@ -444,14 +444,14 @@ export class RoutePrivate { app.get('/api/user-to-room/list', UserToRoomController.list) app.get('/api/user-to-room/export', UserToRoomController.export) - app.post('/api/user-to-room/create', UserToRoomController.create) + // app.post('/api/user-to-room/create', UserToRoomController.create) app.put('/api/user-to-room/update/:user_id', UserToRoomController.update) app.get('/api/user-to-room/view/:id', UserToRoomController.detail) app.get('/api/room-to-pharmacy/list', RoomToPharmacyController.list) app.get('/api/room-to-pharmacy/export', RoomToPharmacyController.export) - app.post('/api/room-to-pharmacy/create', RoomToPharmacyController.create) - app.put('/api/room-to-pharmacy/update/:id', RoomToPharmacyController.update) + // app.post('/api/room-to-pharmacy/create', RoomToPharmacyController.create) + app.put('/api/room-to-pharmacy/update/:room_id', RoomToPharmacyController.update) app.get('/api/room-to-pharmacy/view/:id', RoomToPharmacyController.detail) app.get('/api/pharmacy/planning-verificator/list', PlanningVerificatorController.list) diff --git a/src/swagger/builder.js b/src/swagger/builder.js index e39254f..784d626 100644 --- a/src/swagger/builder.js +++ b/src/swagger/builder.js @@ -366,8 +366,8 @@ const doc = { $room_ids: "Array [room-uuid-1, room-uuid-2]", }, room_to_pharmacy: { + $room_id: "room ID (required, UUID)", $pharmacy_room_id: "Pharmacy Room ID (required, UUID)", - $room_ids: "Array [room-uuid-1, room-uuid-2]", }, planning_verificator: { $user_id: "User ID (required, UUID)",