AdminController.js 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. const { AdminCollection } = require('../../resources/superadmin/admin/AdminCollection.js');
  2. const { AdminResource } = require('../../resources/superadmin/admin/AdminResource.js');
  3. const adminService = require('../../services/superadmin/AdminService.js');
  4. const { PaginationParam } = require('../../utils/PaginationParams.js');
  5. const { errorResponse, messageSuccessResponse } = require('../../utils/Response.js');
  6. const { validateCreateAdminRequest, validateUpdateAdminRequest } = require('../../validators/superadmin/admin/AdminValidators.js');
  7. exports.getAllAdmin = async (req, res) => {
  8. try {
  9. const { page, limit, search, sortBy, orderBy } = PaginationParam(req);
  10. const { admin, total } = await adminService.getAllAdminService({
  11. page, limit, search, sortBy, orderBy
  12. });
  13. return AdminCollection(req, res, admin, total, page, limit, 'Admin data successfully retrieved');
  14. } catch (err) {
  15. return errorResponse(res, err);
  16. }
  17. };
  18. exports.showAdmin = async (req, res) => {
  19. try {
  20. const id = req.params.id;
  21. const data = await adminService.showAdminService(id);
  22. return AdminResource(res, data, 'Success show admin');
  23. } catch (err) {
  24. return errorResponse(res, err);
  25. }
  26. };
  27. exports.storeAdmin = async (req, res) => {
  28. try {
  29. const validated = validateCreateAdminRequest(req.body);
  30. await adminService.storeAdminService(validated, req);
  31. return messageSuccessResponse(res, 'Admin user created successfully', 201);
  32. } catch (err) {
  33. return errorResponse(res, err);
  34. }
  35. }
  36. exports.updateAdmin = async (req, res) => {
  37. try {
  38. const id = req.params.id;
  39. const validatedData = validateUpdateAdminRequest(req.body);
  40. await adminService.updateAdminService(validatedData, id, req);
  41. return messageSuccessResponse(res, 'Success update admin');
  42. } catch (err) {
  43. return errorResponse(res, err);
  44. }
  45. }
  46. exports.deleteAdmin = async (req, res) => {
  47. try {
  48. const id = req.params.id;
  49. await adminService.deleteAdminService(id, req);
  50. return messageSuccessResponse(res, 'Success delete admin');
  51. } catch (err) {
  52. return errorResponse(res, err);
  53. }
  54. };