feat(api): add template room picture endpoint
This commit is contained in:
@ -422,6 +422,11 @@ export class RoomController {
|
|||||||
|
|
||||||
const param: { file_name: string } = await schema.validateAsync(req.body);
|
const param: { file_name: string } = await schema.validateAsync(req.body);
|
||||||
|
|
||||||
|
// Prevent deletion of files starting with "template_"
|
||||||
|
if (param.file_name.startsWith("template_")) {
|
||||||
|
return ReturnHelper.errorResponse(res, 403, 403, Language.lang.failed_delete, "Cannot delete files that start with 'template_'");
|
||||||
|
}
|
||||||
|
|
||||||
// const env = process.env.NODE_ENV + '/'
|
// const env = process.env.NODE_ENV + '/'
|
||||||
const fixedPath = 'uploads/room-picture/';
|
const fixedPath = 'uploads/room-picture/';
|
||||||
const file_path = fixedPath + param.file_name;
|
const file_path = fixedPath + param.file_name;
|
||||||
@ -442,4 +447,32 @@ export class RoomController {
|
|||||||
return ReturnHelper.errorResponse(res, 500, 402, Language.lang.failed_delete, err.message);
|
return ReturnHelper.errorResponse(res, 500, 402, Language.lang.failed_delete, err.message);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static async gettemplatepicture(req: Request, res: Response, next: NextFunction): Promise<Response> {
|
||||||
|
/*
|
||||||
|
#swagger.tags = ['Room']
|
||||||
|
#swagger.security = [{ "bearerAuth": [] }]
|
||||||
|
#swagger.description = 'Get all room pictures from uploads/room-picture/template directory".'
|
||||||
|
*/
|
||||||
|
try {
|
||||||
|
const filePath = 'uploads/room-picture/template/';
|
||||||
|
if (!fs.existsSync(filePath)) {
|
||||||
|
return ReturnHelper.successResponseAny(res, 200, Language.lang.success_view, []);
|
||||||
|
}
|
||||||
|
|
||||||
|
const files = fs.readdirSync(filePath)
|
||||||
|
|
||||||
|
const photoBaseUrl = "https://his.shiblysolution.id/service-master-data/uploads/room-picture/template/";
|
||||||
|
const filesWithUrl = files.map(filename => ({
|
||||||
|
name: `template/${filename}`,
|
||||||
|
url: photoBaseUrl + filename
|
||||||
|
}));
|
||||||
|
|
||||||
|
return ReturnHelper.successResponseAny(res, 200, Language.lang.success_view, filesWithUrl);
|
||||||
|
} catch (e: unknown) {
|
||||||
|
log.error(e);
|
||||||
|
const err = e as Error;
|
||||||
|
return ReturnHelper.errorResponse(res, 500, 401, Language.lang.failed_view, err.message);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -139,6 +139,7 @@ export class RoutePrivate {
|
|||||||
app.put('/api/room/restore/:id', RoomController.restore)
|
app.put('/api/room/restore/:id', RoomController.restore)
|
||||||
app.post('/api/room/upload-picture', RoomController.uploadpicture)
|
app.post('/api/room/upload-picture', RoomController.uploadpicture)
|
||||||
app.delete('/api/room/delete-picture', RoomController.deletepicture)
|
app.delete('/api/room/delete-picture', RoomController.deletepicture)
|
||||||
|
app.get('/api/room/get-template-picture', RoomController.gettemplatepicture)
|
||||||
|
|
||||||
app.get('/api/laboratory/list', LaboratoryController.list)
|
app.get('/api/laboratory/list', LaboratoryController.list)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user