From ae69be02b9a9f9b6ec201cdcaf707053d38c6125 Mon Sep 17 00:00:00 2001 From: avicenan Date: Sun, 22 Feb 2026 12:56:38 +0700 Subject: [PATCH] fix: update service no need add rooms --- src/controllers/service.ts | 104 +++++++++++++++---------------------- src/swagger/builder.js | 1 - 2 files changed, 41 insertions(+), 64 deletions(-) diff --git a/src/controllers/service.ts b/src/controllers/service.ts index c5a89ac..f73485f 100644 --- a/src/controllers/service.ts +++ b/src/controllers/service.ts @@ -51,7 +51,6 @@ export class ServiceController { const res_count = query; const res_list = query .leftJoinAndSelect("Service.serviceType", "serviceType") - .leftJoinAndSelect("Service.rooms", "rooms") .orderBy("Service." + param.order_field, param.order_direction) .offset(offset) .limit(limit); @@ -86,7 +85,6 @@ export class ServiceController { const schema = Joi.object().keys({ name: Joi.string().max(256).required().label("Name"), service_type_id: Joi.string().uuid().required().label("Service Type ID"), - room_ids: Joi.array().items(Joi.string().uuid()).optional().label("Room IDs"), status: Joi.string().required().label("Status"), }); @@ -95,18 +93,9 @@ export class ServiceController { let serviceType = await ServiceTypeModel.list({ id: param.service_type_id }).then((q) => q.getOne()); if (!serviceType) throw { message: "Service Type not found" }; - let rooms: any[] = []; - if (param.room_ids && param.room_ids.length > 0) { - for (const roomId of param.room_ids) { - const room = await RoomModel.list({ id: roomId }).then((q) => q.getOne()); - if (room) rooms.push(room); - } - } - let service = new Service(); service.name = param.name; service.serviceType = serviceType; - service.rooms = rooms; service.status = param.status; service.created_by = req.auth.data.name; service.updated_by = req.auth.data.name; @@ -141,7 +130,6 @@ export class ServiceController { let service = await ServiceModel.list({ "Service.id": param.id }) .then((q) => q .leftJoinAndSelect("Service.serviceType", "serviceType") - .leftJoinAndSelect("Service.rooms", "rooms") .getOne()); if (!service) throw { message: "Service Not Found" }; @@ -171,7 +159,6 @@ export class ServiceController { id: Joi.string().uuid().required().label("Service ID"), name: Joi.string().max(256).required().label("Name"), service_type_id: Joi.string().uuid().required().label("Service Type ID"), - room_ids: Joi.array().items(Joi.string().uuid()).optional().label("Room IDs"), status: Joi.string().required().label("Status"), }); @@ -181,21 +168,12 @@ export class ServiceController { if (!serviceType) throw { message: "Service Type not found" }; let service = await ServiceModel.list({ "Service.id": param.id }) - .then((q) => q.leftJoinAndSelect("Service.serviceType", "st").leftJoinAndSelect("Service.rooms", "r").getOne()); + .then((q) => q.leftJoinAndSelect("Service.serviceType", "st").getOne()); if (!service) throw { message: "Service " + Language.lang.failed_not_found }; - let rooms: any[] = []; - if (param.room_ids && param.room_ids.length > 0) { - for (const roomId of param.room_ids) { - const room = await RoomModel.list({ id: roomId }).then((q) => q.getOne()); - if (room) rooms.push(room); - } - } - service.name = param.name; service.serviceType = serviceType; - service.rooms = rooms; service.status = param.status; service.updated_by = req.auth.data.name; await queryRunner.manager.save(service); @@ -213,55 +191,55 @@ export class ServiceController { } } - static async updateservicerooms(req: Request, res: Response, next: NextFunction): Promise { - /* - #swagger.tags = ['Service'] - #swagger.security = [{ "bearerAuth": [] }] - #swagger.parameters['id'] = { description: '', in: 'path', type: 'string' } - #swagger.requestBody = { required: true, content: { "application/json": { schema: { $ref: "#/components/schemas/servicerooms" } } } } - */ - const queryRunner = OrmHelper.DB.createQueryRunner(); - await queryRunner.startTransaction(); + // static async updateservicerooms(req: Request, res: Response, next: NextFunction): Promise { + // /* + // #swagger.tags = ['Service'] + // #swagger.security = [{ "bearerAuth": [] }] + // #swagger.parameters['id'] = { description: '', in: 'path', type: 'string' } + // #swagger.requestBody = { required: true, content: { "application/json": { schema: { $ref: "#/components/schemas/servicerooms" } } } } + // */ + // const queryRunner = OrmHelper.DB.createQueryRunner(); + // await queryRunner.startTransaction(); - try { - req.body.id = req.params["id"]; + // try { + // req.body.id = req.params["id"]; - const schema = Joi.object().keys({ - id: Joi.string().uuid().required().label("Service ID"), - room_ids: Joi.array().items(Joi.string().uuid()).optional().label("Room IDs"), - }); + // const schema = Joi.object().keys({ + // id: Joi.string().uuid().required().label("Service ID"), + // room_ids: Joi.array().items(Joi.string().uuid()).optional().label("Room IDs"), + // }); - let param: any = await schema.validateAsync(req.body); + // let param: any = await schema.validateAsync(req.body); - let service = await ServiceModel.list({ "Service.id": param.id }) - .then((q) => q.leftJoinAndSelect("Service.serviceType", "st").leftJoinAndSelect("Service.rooms", "r").getOne()); + // let service = await ServiceModel.list({ "Service.id": param.id }) + // .then((q) => q.leftJoinAndSelect("Service.serviceType", "st").leftJoinAndSelect("Service.rooms", "r").getOne()); - if (!service) throw { message: "Service " + Language.lang.failed_not_found }; + // if (!service) throw { message: "Service " + Language.lang.failed_not_found }; - let rooms: any[] = []; - if (param.room_ids && param.room_ids.length > 0) { - for (const roomId of param.room_ids) { - const room = await RoomModel.list({ id: roomId }).then((q) => q.getOne()); - if (room) rooms.push(room); - } - } + // let rooms: any[] = []; + // if (param.room_ids && param.room_ids.length > 0) { + // for (const roomId of param.room_ids) { + // const room = await RoomModel.list({ id: roomId }).then((q) => q.getOne()); + // if (room) rooms.push(room); + // } + // } - service.rooms = rooms; - service.updated_by = req.auth.data.name; - await queryRunner.manager.save(service); + // service.rooms = rooms; + // service.updated_by = req.auth.data.name; + // await queryRunner.manager.save(service); - await queryRunner.commitTransaction(); + // await queryRunner.commitTransaction(); - return ReturnHelper.successResponseAny(res, 200, Language.lang.success_update, service); - } catch (e: unknown) { - await queryRunner.rollbackTransaction(); - log.error(e); - const err = e as Error; - return ReturnHelper.errorResponse(res, 400, 401, Language.lang.failed_view, err.message); - } finally { - await queryRunner.release(); - } - } + // return ReturnHelper.successResponseAny(res, 200, Language.lang.success_update, service); + // } catch (e: unknown) { + // await queryRunner.rollbackTransaction(); + // log.error(e); + // const err = e as Error; + // return ReturnHelper.errorResponse(res, 400, 401, Language.lang.failed_view, err.message); + // } finally { + // await queryRunner.release(); + // } + // } static async delete(req: Request, res: Response, next: NextFunction): Promise { /* diff --git a/src/swagger/builder.js b/src/swagger/builder.js index f767961..9ee0b36 100644 --- a/src/swagger/builder.js +++ b/src/swagger/builder.js @@ -123,7 +123,6 @@ const doc = { service: { $name: "e.g. ER Registration", $service_type_id: "uuid-string", - $room_ids: ["uuid-string"], $status: { "@enum": ["Y", "N"] } }, roomServices: {