HospitalController.js 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. const { HospitalCollection } = require('../../resources/admin/hospital/HospitalCollection.js');
  2. const { HospitalResource } = require('../../resources/admin/hospital/HospitalResource.js');
  3. const hospitalService = require('../../services/admin/HospitalService.js');
  4. const { PaginationParam } = require('../../utils/PaginationParams.js');
  5. const { errorResponse, messageSuccessResponse } = require('../../utils/Response.js');
  6. const { validateStoreHospitalRequest, validateUpdateHospitalRequest } = require('../../validators/admin/hospital/HospitalValidators.js');
  7. exports.getAllHospital = async (req, res) => {
  8. try {
  9. const { page, limit, search, sortBy, orderBy, province, city, type, ownership, progress_status } = PaginationParam(req, ['province', 'city', 'type', 'ownership', 'progress_status']);
  10. const { hospitals, total } = await hospitalService.getAllHospitalService({
  11. page, limit, search, sortBy, orderBy, province, city, type, ownership, progress_status
  12. });
  13. return HospitalCollection({ req, res, data: hospitals, total, page, limit, message: 'Hospital data successfully retrieved' });
  14. } catch (err) {
  15. return errorResponse(res, err);
  16. }
  17. };
  18. exports.showHospital = async (req, res) => {
  19. try {
  20. const id = req.params.id;
  21. const data = await hospitalService.showHospitalService(id);
  22. return HospitalResource(res, data, 'Success show hospital');
  23. } catch (err) {
  24. return errorResponse(res, err);
  25. }
  26. };
  27. exports.storeHospital = async (req, res) => {
  28. try {
  29. const validatedData = validateStoreHospitalRequest(req.body);
  30. await hospitalService.storeHospitalService(validatedData, req);
  31. return messageSuccessResponse(res, 'Success added hospital', 201);
  32. } catch (err) {
  33. return errorResponse(res, err);
  34. }
  35. }
  36. exports.updateHospital = async (req, res) => {
  37. try {
  38. const id = req.params.id;
  39. const validatedData = validateUpdateHospitalRequest(req.body);
  40. await hospitalService.updateHospitalService(validatedData, id, req);
  41. return messageSuccessResponse(res, 'Success update hospital');
  42. } catch (err) {
  43. return errorResponse(res, err);
  44. }
  45. }
  46. exports.deleteHospital = async (req, res) => {
  47. try {
  48. const id = req.params.id;
  49. await hospitalService.deleteHospitalService(id, req);
  50. return messageSuccessResponse(res, 'Success delete hospital');
  51. } catch (err) {
  52. return errorResponse(res, err);
  53. }
  54. };