From 9a715f3f816195c4ad173a1f40a40dfec7069c4c Mon Sep 17 00:00:00 2001 From: Muhammad Rayhan Ardiansyah Date: Tue, 17 Mar 2026 14:29:46 +0700 Subject: [PATCH] fixing pharmacy info --- src/controllers/pharmacy/pharmacy_info.ts | 28 +++++++++++++++++++++++ src/model/pharmacy_info.ts | 7 +++++- src/routes/private.ts | 2 +- 3 files changed, 35 insertions(+), 2 deletions(-) diff --git a/src/controllers/pharmacy/pharmacy_info.ts b/src/controllers/pharmacy/pharmacy_info.ts index 3bf272e..db188c8 100644 --- a/src/controllers/pharmacy/pharmacy_info.ts +++ b/src/controllers/pharmacy/pharmacy_info.ts @@ -78,6 +78,32 @@ export class PharmacyInfoController { } } + static async detail(req: Request, res: Response, next: NextFunction): Promise { + /* + #swagger.tags = ['Pharmacy - PharmacyInfo'] + #swagger.security = [{ "bearerAuth": [] }] + #swagger.parameters['id'] = { description: '', in: 'path', type: 'string' } + */ + try { + const schema = Joi.object().keys({ + id: Joi.string().uuid().required().label("Pharmacy Info Id"), + }); + + let param: any = await schema.validateAsync(req.params); + + let data = await PharmacyInfoModel.list({ "id": param.id }).then((q) => q.getOne()); + if (!data) throw { message: "Pharmacy Info Not Found" }; + + data.logo = 'http://his.shiblysolution.id:3011/service-master-data/uploads/pharmacy-info/' + data.logo + + return ReturnHelper.successResponseAny(res, 200, Language.lang.success_view, data); + } catch (e: unknown) { + log.error(e); + const err = e as Error; + return ReturnHelper.errorResponse(res, 400, 401, Language.lang.failed_not_found, err.message); + } + } + static async export(req: Request, res: Response, next: NextFunction): Promise { /* #swagger.tags = ['Pharmacy - PharmacyInfo'] @@ -239,6 +265,7 @@ export class PharmacyInfoController { data.aldeia = param.aldeia data.phone = param.phone data.default_room = param.default_room_id + data.logo = param.logo data.created_by = req.auth.data.name; await OrmHelper.DB.manager.save(data); @@ -343,6 +370,7 @@ export class PharmacyInfoController { data.aldeia = param.aldeia data.phone = param.phone data.default_room = param.default_room_id + data.logo = param.logo data.updated_by = req.auth.data.name; await repo.save(data); diff --git a/src/model/pharmacy_info.ts b/src/model/pharmacy_info.ts index ac8bfc3..4183138 100644 --- a/src/model/pharmacy_info.ts +++ b/src/model/pharmacy_info.ts @@ -13,7 +13,12 @@ export class PharmacyInfoModel { whereVal = { ...whereVal, ...CommonHelper.handleQueryFilter(filter, "pharmacy_info").whereVal }; } - var query = repo.createQueryBuilder("pharmacy_info").leftJoinAndSelect("pharmacy_info.default_room", "default_room"); + var query = repo.createQueryBuilder("pharmacy_info") + .leftJoinAndSelect("pharmacy_info.default_room", "default_room") + .leftJoinAndSelect("pharmacy_info.munisipiu", "munisipiu") + .leftJoinAndSelect("pharmacy_info.postu_admin", "postu_admin") + .leftJoinAndSelect("pharmacy_info.suco", "suco") + .leftJoinAndSelect("pharmacy_info.aldeia", "aldeia"); if (whereAttr.length != 0) { query = query.where(whereAttr.join(" and "), whereVal); } diff --git a/src/routes/private.ts b/src/routes/private.ts index 347187c..a23a1aa 100644 --- a/src/routes/private.ts +++ b/src/routes/private.ts @@ -381,7 +381,7 @@ export class RoutePrivate { app.put('/api/pharmacy/pharmacy-info/restore/:id', PharmacyInfoController.restore) app.post('/api/pharmacy/pharmacy-info/upload-logo', PharmacyInfoController.uploadlogo) app.delete('/api/pharmacy/pharmacy-info/delete-logo', PharmacyInfoController.deletelogo) - app.get('/api/pharmacy/pharmacy-info/view', PharmacyInfoController.view) + app.get('/api/pharmacy/pharmacy-info/view/:id', PharmacyInfoController.detail) app.get('/api/pharmacy/item-price/list', ItemPriceController.list) app.get('/api/pharmacy/item-price/export', ItemPriceController.export)