Quellcode durchsuchen

update resource

pearlgw vor 2 Monaten
Ursprung
Commit
50fd6a99bf
56 geänderte Dateien mit 623 neuen und 201 gelöschten Zeilen
  1. 5 4
      src/controllers/admin/CityController.js
  2. 6 5
      src/controllers/admin/ExecutivesHistoryController.js
  3. 5 4
      src/controllers/admin/HospitalController.js
  4. 5 4
      src/controllers/admin/ProvinceController.js
  5. 5 2
      src/controllers/admin/SalesController.js
  6. 4 2
      src/controllers/admin/VendorController.js
  7. 6 4
      src/controllers/admin/VendorHistoryController.js
  8. 5 3
      src/controllers/auth/AuthControllers.js
  9. 2 2
      src/controllers/sales/AreaController.js
  10. 6 5
      src/controllers/sales/ExecutivesHistoryController.js
  11. 5 4
      src/controllers/sales/HospitalController.js
  12. 2 1
      src/controllers/sales/VendorController.js
  13. 6 4
      src/controllers/sales/VendorHistoryController.js
  14. 5 4
      src/controllers/superadmin/AdminController.js
  15. 2 2
      src/controllers/superadmin/LogController.js
  16. 22 0
      src/resources/admin/city/CityCollection.js
  17. 17 0
      src/resources/admin/city/CityResource.js
  18. 24 0
      src/resources/admin/executives_history/ExecutivesHistoriCollection.js
  19. 19 0
      src/resources/admin/executives_history/ExecutivesHistoriResource.js
  20. 22 0
      src/resources/admin/hospital/HospitalCollection.js
  21. 17 0
      src/resources/admin/hospital/HospitalResource.js
  22. 22 0
      src/resources/admin/province/ProvinceCollection.js
  23. 17 0
      src/resources/admin/province/ProvinceResource.js
  24. 22 0
      src/resources/admin/sales/SalesCollection.js
  25. 17 0
      src/resources/admin/sales/SalesResource.js
  26. 22 0
      src/resources/admin/vendor/VendorCollection.js
  27. 17 0
      src/resources/admin/vendor/VendorResource.js
  28. 24 0
      src/resources/admin/vendor_history/VendorHistoriCollection.js
  29. 19 0
      src/resources/admin/vendor_history/VendorHistoriResource.js
  30. 7 0
      src/resources/auth/LoginResource.js
  31. 8 0
      src/resources/auth/UserResource.js
  32. 13 0
      src/resources/sales/area/UserAreaCollection.js
  33. 24 0
      src/resources/sales/executives_history/ExecutivesHistoriCollection.js
  34. 19 0
      src/resources/sales/executives_history/ExecutivesHistoriResource.js
  35. 22 0
      src/resources/sales/hospital/HospitalCollection.js
  36. 17 0
      src/resources/sales/hospital/HospitalResource.js
  37. 22 0
      src/resources/sales/vendor/VendorCollection.js
  38. 24 0
      src/resources/sales/vendor_history/VendorHistoriCollection.js
  39. 19 0
      src/resources/sales/vendor_history/VendorHistoriResource.js
  40. 22 0
      src/resources/superadmin/admin/AdminCollection.js
  41. 17 0
      src/resources/superadmin/admin/AdminResource.js
  42. 21 0
      src/resources/superadmin/log/LogCollection.js
  43. 7 11
      src/services/admin/CityService.js
  44. 3 17
      src/services/admin/ExecutivesHistoryService.js
  45. 2 12
      src/services/admin/HospitalService.js
  46. 8 12
      src/services/admin/ProvinceService.js
  47. 3 13
      src/services/admin/SalesService.js
  48. 2 16
      src/services/admin/VendorHistoryService.js
  49. 3 13
      src/services/admin/VendorService.js
  50. 2 2
      src/services/auth/AuthService.js
  51. 0 1
      src/services/sales/AreaService.js
  52. 3 18
      src/services/sales/ExecutivesHistoryService.js
  53. 2 12
      src/services/sales/HospitalService.js
  54. 2 16
      src/services/sales/VendorHistoryService.js
  55. 1 8
      src/services/sales/VendorService.js
  56. BIN
      storage/img/1751436316148-835632934.png

+ 5 - 4
src/controllers/admin/CityController.js

@@ -1,7 +1,8 @@
1
+const { CityCollection } = require('../../resources/admin/city/CityCollection.js');
2
+const { CityResource } = require('../../resources/admin/city/CityResource.js');
1 3
 const cityService = require('../../services/admin/CityService.js');
2
-const { ListResponse } = require('../../utils/ListResponse.js');
3 4
 const { PaginationParam } = require('../../utils/PaginationParams.js');
4
-const { errorResponse, successResponse, messageSuccessResponse } = require('../../utils/Response.js');
5
+const { errorResponse, messageSuccessResponse } = require('../../utils/Response.js');
5 6
 const { validateStoreCityRequest } = require('../../validators/admin/city/CityValidators.js');
6 7
 
7 8
 exports.getAllCity = async (req, res) => {
@@ -12,7 +13,7 @@ exports.getAllCity = async (req, res) => {
12 13
             page, limit, search, sortBy, orderBy
13 14
         });
14 15
 
15
-        return ListResponse({ req, res, data: cities, page, limit, total, message: 'City data successfully retrieved' });
16
+        return CityCollection(req, res, cities, total, page, limit, 'City data successfully retrieved');
16 17
     } catch (err) {
17 18
         return errorResponse(res, err);
18 19
     }
@@ -22,7 +23,7 @@ exports.showCity = async (req, res) => {
22 23
     try {
23 24
         const id = req.params.id;
24 25
         const data = await cityService.showCityService(id);
25
-        return successResponse(res, data, 'Success show city');
26
+        return CityResource(res, data, 'Success show city');
26 27
     } catch (err) {
27 28
         return errorResponse(res, err);
28 29
     }

+ 6 - 5
src/controllers/admin/ExecutivesHistoryController.js

@@ -1,18 +1,19 @@
1
+const { ExecutivesHistoriCollection } = require('../../resources/admin/executives_history/ExecutivesHistoriCollection.js');
2
+const { ExecutivesHistoriResource } = require('../../resources/admin/executives_history/ExecutivesHistoriResource.js');
1 3
 const executivesHistoryService = require('../../services/admin/ExecutivesHistoryService.js');
2
-const { ListResponse } = require('../../utils/ListResponse.js');
3 4
 const { PaginationParam } = require('../../utils/PaginationParams.js');
4
-const { errorResponse, successResponse, messageSuccessResponse } = require('../../utils/Response.js');
5
+const { errorResponse, messageSuccessResponse } = require('../../utils/Response.js');
5 6
 const { validateStoreExecutivesHistoryRequest } = require('../../validators/sales/executives_history/ExecutivesHistoriValidators.js');
6 7
 
7 8
 exports.getAllExecutivesHistory = async (req, res) => {
8 9
     try {
9 10
         const { page, limit, search, sortBy, orderBy } = PaginationParam(req);
10 11
 
11
-        const { vendor_histories, total } = await executivesHistoryService.getAllExecutivesHistoryService({
12
+        const { executives_histories, total } = await executivesHistoryService.getAllExecutivesHistoryService({
12 13
             page, limit, search, sortBy, orderBy
13 14
         }, req);
14 15
 
15
-        return ListResponse({ req, res, data: vendor_histories, page, limit, total, message: 'Executives history successfully retrieved' });
16
+        return ExecutivesHistoriCollection(req, res, executives_histories, total, page, limit, 'Executives history successfully retrieved');
16 17
     } catch (err) {
17 18
         return errorResponse(res, err);
18 19
     }
@@ -21,7 +22,7 @@ exports.getAllExecutivesHistory = async (req, res) => {
21 22
 exports.showExecutivesHistory = async (req, res) => {
22 23
     try {
23 24
         const data = await executivesHistoryService.showExecutivesHistoryService(req);
24
-        return successResponse(res, data, 'Success show executives history');
25
+        return ExecutivesHistoriResource(res, data, 'Success show executives history');
25 26
     } catch (err) {
26 27
         return errorResponse(res, err);
27 28
     }

+ 5 - 4
src/controllers/admin/HospitalController.js

@@ -1,7 +1,8 @@
1
+const { HospitalCollection } = require('../../resources/admin/hospital/HospitalCollection.js');
2
+const { HospitalResource } = require('../../resources/admin/hospital/HospitalResource.js');
1 3
 const hospitalService = require('../../services/admin/HospitalService.js');
2
-const { ListResponse } = require('../../utils/ListResponse.js');
3 4
 const { PaginationParam } = require('../../utils/PaginationParams.js');
4
-const { errorResponse, successResponse, messageSuccessResponse } = require('../../utils/Response.js');
5
+const { errorResponse, messageSuccessResponse } = require('../../utils/Response.js');
5 6
 const { validateStoreHospitalRequest, validateUpdateHospitalRequest } = require('../../validators/admin/hospital/HospitalValidators.js');
6 7
 
7 8
 exports.getAllHospital = async (req, res) => {
@@ -12,7 +13,7 @@ exports.getAllHospital = async (req, res) => {
12 13
             page, limit, search, sortBy, orderBy, province, city, type, ownership, progress_status
13 14
         });
14 15
 
15
-        return ListResponse({ req, res, data: hospitals, page, limit, total, message: 'Hospital data successfully retrieved' });
16
+        return HospitalCollection(req, res, hospitals, total, page, limit, 'Hospital data successfully retrieved');
16 17
     } catch (err) {
17 18
         return errorResponse(res, err);
18 19
     }
@@ -22,7 +23,7 @@ exports.showHospital = async (req, res) => {
22 23
     try {
23 24
         const id = req.params.id;
24 25
         const data = await hospitalService.showHospitalService(id);
25
-        return successResponse(res, data, 'Success show hospital');
26
+        return HospitalResource(res, data, 'Success show hospital');
26 27
     } catch (err) {
27 28
         return errorResponse(res, err);
28 29
     }

+ 5 - 4
src/controllers/admin/ProvinceController.js

@@ -1,7 +1,8 @@
1
+const { ProvinceCollection } = require('../../resources/admin/province/ProvinceCollection.js');
2
+const { ProvinceResource } = require('../../resources/admin/province/ProvinceResource.js');
1 3
 const provinceService = require('../../services/admin/ProvinceService.js');
2
-const { ListResponse } = require('../../utils/ListResponse.js');
3 4
 const { PaginationParam } = require('../../utils/PaginationParams.js');
4
-const { errorResponse, successResponse, messageSuccessResponse } = require('../../utils/Response.js');
5
+const { errorResponse, messageSuccessResponse } = require('../../utils/Response.js');
5 6
 const { validateStoreProvinceRequest } = require('../../validators/admin/province/ProvinceValidators.js');
6 7
 
7 8
 exports.getAllProvince = async (req, res) => {
@@ -12,7 +13,7 @@ exports.getAllProvince = async (req, res) => {
12 13
             page, limit, search, sortBy, orderBy
13 14
         });
14 15
 
15
-        return ListResponse({ req, res, data: provinces, page, limit, total, message: 'Province data successfully retrieved' });
16
+        return ProvinceCollection(req, res, provinces, total, page, limit, 'Province data successfully retrieved');
16 17
     } catch (err) {
17 18
         return errorResponse(res, err);
18 19
     }
@@ -22,7 +23,7 @@ exports.showProvince = async (req, res) => {
22 23
     try {
23 24
         const id = req.params.id;
24 25
         const data = await provinceService.showProvinceService(id);
25
-        return successResponse(res, data, 'Success show province');
26
+        return ProvinceResource(res, data, 'Success show province');
26 27
     } catch (err) {
27 28
         return errorResponse(res, err);
28 29
     }

+ 5 - 2
src/controllers/admin/SalesController.js

@@ -1,3 +1,5 @@
1
+const { SalesCollection } = require('../../resources/admin/sales/SalesCollection.js');
2
+const { SalesResource } = require('../../resources/admin/sales/SalesResource.js');
1 3
 const salesService = require('../../services/admin/SalesService.js');
2 4
 const { ListResponse } = require('../../utils/ListResponse.js');
3 5
 const { PaginationParam } = require('../../utils/PaginationParams.js');
@@ -12,7 +14,8 @@ exports.getAllSales = async (req, res) => {
12 14
             page, limit, search, sortBy, orderBy
13 15
         });
14 16
 
15
-        return ListResponse({ req, res, data: sales, page, limit, total, message: 'Sales data successfully retrieved' });
17
+        return SalesCollection(req, res, sales, total, page, limit, 'Sales data successfully retrieved');
18
+
16 19
     } catch (err) {
17 20
         return errorResponse(res, err);
18 21
     }
@@ -22,7 +25,7 @@ exports.showSales = async (req, res) => {
22 25
     try {
23 26
         const id = req.params.id;
24 27
         const data = await salesService.showSalesService(id);
25
-        return successResponse(res, data, 'Success show sales');
28
+        return SalesResource(res, data, 'Success show sales');
26 29
     } catch (err) {
27 30
         return errorResponse(res, err);
28 31
     }

+ 4 - 2
src/controllers/admin/VendorController.js

@@ -1,3 +1,5 @@
1
+const { VendorCollection } = require('../../resources/admin/vendor/VendorCollection.js');
2
+const { VendorResource } = require('../../resources/admin/vendor/VendorResource.js');
1 3
 const vendorService = require('../../services/admin/VendorService.js');
2 4
 const { ListResponse } = require('../../utils/ListResponse.js');
3 5
 const { PaginationParam } = require('../../utils/PaginationParams.js');
@@ -12,7 +14,7 @@ exports.getAllVendor = async (req, res) => {
12 14
             page, limit, search, sortBy, orderBy
13 15
         });
14 16
 
15
-        return ListResponse({ req, res, data: vendors, page, limit, total, message: 'Vendor data successfully retrieved' });
17
+        return VendorCollection(req, res, vendors, total, page, limit, 'Vendor data successfully retrieved');
16 18
     } catch (err) {
17 19
         return errorResponse(res, err);
18 20
     }
@@ -22,7 +24,7 @@ exports.showVendor = async (req, res) => {
22 24
     try {
23 25
         const id = req.params.id;
24 26
         const data = await vendorService.showVendorService(id);
25
-        return successResponse(res, data, 'Success show vendor');
27
+        return VendorResource(res, data, 'Success show vendor');
26 28
     } catch (err) {
27 29
         return errorResponse(res, err);
28 30
     }

+ 6 - 4
src/controllers/admin/VendorHistoryController.js

@@ -1,7 +1,8 @@
1
+const { VendorHistoriCollection } = require('../../resources/admin/vendor_history/VendorHistoriCollection.js');
2
+const { VendorHistoriResource } = require('../../resources/admin/vendor_history/VendorHistoriResource.js');
1 3
 const vendorHistoryService = require('../../services/admin/VendorHistoryService.js');
2
-const { ListResponse } = require('../../utils/ListResponse.js');
3 4
 const { PaginationParam } = require('../../utils/PaginationParams.js');
4
-const { errorResponse, successResponse, messageSuccessResponse } = require('../../utils/Response.js');
5
+const { errorResponse, messageSuccessResponse } = require('../../utils/Response.js');
5 6
 const { validateStoreVendorHistoryRequest } = require('../../validators/sales/vendor_history/VendorHistoriValidators.js');
6 7
 
7 8
 exports.getAllVendorHistory = async (req, res) => {
@@ -12,7 +13,8 @@ exports.getAllVendorHistory = async (req, res) => {
12 13
             page, limit, search, sortBy, orderBy
13 14
         }, req);
14 15
 
15
-        return ListResponse({ req, res, data: vendor_histories, page, limit, total, message: 'Vendor history successfully retrieved' });
16
+        return VendorHistoriCollection(req, res, vendor_histories, total, page, limit, 'Vendor history successfully retrieved');
17
+
16 18
     } catch (err) {
17 19
         return errorResponse(res, err);
18 20
     }
@@ -21,7 +23,7 @@ exports.getAllVendorHistory = async (req, res) => {
21 23
 exports.showVendorHistory = async (req, res) => {
22 24
     try {
23 25
         const data = await vendorHistoryService.showVendorHistoryService(req);
24
-        return successResponse(res, data, 'Success show vendor history');
26
+        return VendorHistoriResource(res, data, 'Success show vendor history');
25 27
     } catch (err) {
26 28
         return errorResponse(res, err);
27 29
     }

+ 5 - 3
src/controllers/auth/AuthControllers.js

@@ -1,3 +1,5 @@
1
+const { LoginResource } = require('../../resources/auth/LoginResource.js');
2
+const { UserResource } = require('../../resources/auth/UserResource.js');
1 3
 const { loginService, getUserService, logoutService } = require('../../services/auth/AuthService.js');
2 4
 const { successResponse, errorResponse, messageSuccessResponse } = require('../../utils/Response.js');
3 5
 const { validateLoginRequest } = require('../../validators/auth/LoginValidators.js');
@@ -5,8 +7,8 @@ const { validateLoginRequest } = require('../../validators/auth/LoginValidators.
5 7
 exports.login = async (req, res) => {
6 8
     try {
7 9
         const validated = validateLoginRequest(req.body);
8
-        const { user, token } = await loginService(validated, req);
9
-        return successResponse(res, { ...user, token }, 'Login success');
10
+        const data = await loginService(validated, req);
11
+        return LoginResource(res, data, "Login success")
10 12
     } catch (error) {
11 13
         return errorResponse(res, error);
12 14
     }
@@ -15,7 +17,7 @@ exports.login = async (req, res) => {
15 17
 exports.getUser = async (req, res) => {
16 18
     try {
17 19
         const data = await getUserService(req);
18
-        return successResponse(res, data, 'Success get user');
20
+        return UserResource(res, data, 'Success get user');
19 21
     } catch (error) {
20 22
         return errorResponse(res, error);
21 23
     }

+ 2 - 2
src/controllers/sales/AreaController.js

@@ -1,5 +1,5 @@
1
+const { UserAreaCollection } = require("../../resources/sales/area/UserAreaCollection.js");
1 2
 const { getAllAreaByUserService } = require("../../services/sales/AreaService.js");
2
-const { ListResponse } = require("../../utils/ListResponse");
3 3
 const { PaginationParam } = require("../../utils/PaginationParams");
4 4
 const { errorResponse } = require("../../utils/Response");
5 5
 
@@ -9,7 +9,7 @@ exports.getAllAreaByUser = async (req, res) => {
9 9
 
10 10
         const { areas, total } = await getAllAreaByUserService({ page, limit, search, sortBy, orderBy }, req);
11 11
 
12
-        return ListResponse({ req, res, data: areas, page, limit, total, message: 'Area city successfully retrieved' });
12
+        return UserAreaCollection(req, res, areas, total, page, limit, 'Area data successfully retrieved');
13 13
     } catch (err) {
14 14
         return errorResponse(res, err);
15 15
     }

+ 6 - 5
src/controllers/sales/ExecutivesHistoryController.js

@@ -1,18 +1,19 @@
1
+const { ExecutivesHistoriResource } = require('../../resources/sales/executives_history/ExecutivesHistoriResource.js');
2
+const { ExecutivesHistoriCollection } = require('../../resources/sales/executives_history/ExecutivesHistoriCollection.js');
1 3
 const executivesHistoryService = require('../../services/sales/ExecutivesHistoryService.js');
2
-const { ListResponse } = require('../../utils/ListResponse.js');
3 4
 const { PaginationParam } = require('../../utils/PaginationParams.js');
4
-const { errorResponse, successResponse, messageSuccessResponse } = require('../../utils/Response.js');
5
+const { errorResponse, messageSuccessResponse } = require('../../utils/Response.js');
5 6
 const { validateStoreExecutivesHistoryRequest } = require('../../validators/admin/executives_history/ExecutivesHistoriValidators.js');
6 7
 
7 8
 exports.getAllExecutivesHistory = async (req, res) => {
8 9
     try {
9 10
         const { page, limit, search, sortBy, orderBy } = PaginationParam(req);
10 11
 
11
-        const { vendor_histories, total } = await executivesHistoryService.getAllExecutivesHistoryService({
12
+        const { executives_histories, total } = await executivesHistoryService.getAllExecutivesHistoryService({
12 13
             page, limit, search, sortBy, orderBy
13 14
         }, req);
14 15
 
15
-        return ListResponse({ req, res, data: vendor_histories, page, limit, total, message: 'Executives history successfully retrieved' });
16
+        return ExecutivesHistoriCollection(req, res, executives_histories, total, page, limit, 'Executives history successfully retrieved');
16 17
     } catch (err) {
17 18
         return errorResponse(res, err);
18 19
     }
@@ -21,7 +22,7 @@ exports.getAllExecutivesHistory = async (req, res) => {
21 22
 exports.showExecutivesHistory = async (req, res) => {
22 23
     try {
23 24
         const data = await executivesHistoryService.showExecutivesHistoryService(req);
24
-        return successResponse(res, data, 'Success show executives history');
25
+        return ExecutivesHistoriResource(res, data, 'Success show executives history');
25 26
     } catch (err) {
26 27
         return errorResponse(res, err);
27 28
     }

+ 5 - 4
src/controllers/sales/HospitalController.js

@@ -1,7 +1,8 @@
1
+const { HospitalCollection } = require("../../resources/sales/hospital/HospitalCollection.js");
2
+const { HospitalResource } = require("../../resources/sales/hospital/HospitalResource.js");
1 3
 const { getAllHospitalByAreaService, storeHospitalService, updateHospitalService, showHospitalService } = require("../../services/sales/HospitalService");
2
-const { ListResponse } = require("../../utils/ListResponse");
3 4
 const { PaginationParam } = require("../../utils/PaginationParams");
4
-const { errorResponse, messageSuccessResponse, successResponse } = require("../../utils/Response");
5
+const { errorResponse, messageSuccessResponse } = require("../../utils/Response");
5 6
 const { validateStoreHospitalRequest, validateUpdateHospitalRequest } = require('../../validators/admin/hospital/HospitalValidators.js');
6 7
 
7 8
 exports.getAllHospitalByArea = async (req, res) => {
@@ -10,7 +11,7 @@ exports.getAllHospitalByArea = async (req, res) => {
10 11
 
11 12
         const { hospitals, total } = await getAllHospitalByAreaService({ page, limit, search, sortBy, orderBy, province, city, type, ownership, progress_status }, req);
12 13
 
13
-        return ListResponse({ req, res, data: hospitals, page, limit, total, message: 'Hospital data successfully retrieved' });
14
+        return HospitalCollection(req, res, hospitals, total, page, limit, 'Hospital data successfully retrieved');
14 15
     } catch (err) {
15 16
         return errorResponse(res, err);
16 17
     }
@@ -41,7 +42,7 @@ exports.showHospital = async (req, res) => {
41 42
     try {
42 43
         const id = req.params.id;
43 44
         const data = await showHospitalService(id);
44
-        return successResponse(res, data, 'Success show hospital');
45
+        return HospitalResource(res, data, 'Success show hospital');
45 46
     } catch (err) {
46 47
         return errorResponse(res, err);
47 48
     }

+ 2 - 1
src/controllers/sales/VendorController.js

@@ -1,3 +1,4 @@
1
+const { VendorCollection } = require('../../resources/sales/vendor/VendorCollection.js');
1 2
 const vendorService = require('../../services/sales/VendorService.js');
2 3
 const { ListResponse } = require('../../utils/ListResponse.js');
3 4
 const { PaginationParam } = require('../../utils/PaginationParams.js');
@@ -11,7 +12,7 @@ exports.getAllVendor = async (req, res) => {
11 12
             page, limit, search, sortBy, orderBy
12 13
         }, req);
13 14
 
14
-        return ListResponse({ req, res, data: vendors, page, limit, total, message: 'Vendor data sales successfully retrieved' });
15
+        return VendorCollection(req, res, vendors, total, page, limit, 'Vendor data sales successfully retrieved');
15 16
     } catch (err) {
16 17
         return errorResponse(res, err);
17 18
     }

+ 6 - 4
src/controllers/sales/VendorHistoryController.js

@@ -1,7 +1,8 @@
1
+const { VendorHistoriCollection } = require('../../resources/sales/vendor_history/VendorHistoriCollection.js');
2
+const { VendorHistoriResource } = require('../../resources/sales/vendor_history/VendorHistoriResource.js');
1 3
 const vendorHistoryService = require('../../services/sales/VendorHistoryService.js');
2
-const { ListResponse } = require('../../utils/ListResponse.js');
3 4
 const { PaginationParam } = require('../../utils/PaginationParams.js');
4
-const { errorResponse, successResponse, messageSuccessResponse } = require('../../utils/Response.js');
5
+const { errorResponse, messageSuccessResponse } = require('../../utils/Response.js');
5 6
 const { validateStoreVendorHistoryRequest } = require('../../validators/admin/vendor_history/VendorHistoriValidators.js');
6 7
 
7 8
 exports.getAllVendorHistory = async (req, res) => {
@@ -12,7 +13,8 @@ exports.getAllVendorHistory = async (req, res) => {
12 13
             page, limit, search, sortBy, orderBy
13 14
         }, req);
14 15
 
15
-        return ListResponse({ req, res, data: vendor_histories, page, limit, total, message: 'Vendor history successfully retrieved' });
16
+        return VendorHistoriCollection(req, res, vendor_histories, total, page, limit, 'Vendor history successfully retrieved');
17
+
16 18
     } catch (err) {
17 19
         return errorResponse(res, err);
18 20
     }
@@ -21,7 +23,7 @@ exports.getAllVendorHistory = async (req, res) => {
21 23
 exports.showVendorHistory = async (req, res) => {
22 24
     try {
23 25
         const data = await vendorHistoryService.showVendorHistoryService(req);
24
-        return successResponse(res, data, 'Success show vendor history');
26
+        return VendorHistoriResource(res, data, 'Success show vendor history');
25 27
     } catch (err) {
26 28
         return errorResponse(res, err);
27 29
     }

+ 5 - 4
src/controllers/superadmin/AdminController.js

@@ -1,7 +1,8 @@
1
+const { AdminCollection } = require('../../resources/superadmin/admin/AdminCollection.js');
2
+const { AdminResource } = require('../../resources/superadmin/admin/AdminResource.js');
1 3
 const adminService = require('../../services/superadmin/AdminService.js');
2
-const { ListResponse } = require('../../utils/ListResponse.js');
3 4
 const { PaginationParam } = require('../../utils/PaginationParams.js');
4
-const { errorResponse, successResponse, messageSuccessResponse } = require('../../utils/Response.js');
5
+const { errorResponse, messageSuccessResponse } = require('../../utils/Response.js');
5 6
 const { validateCreateAdminRequest, validateUpdateAdminRequest } = require('../../validators/superadmin/admin/AdminValidators.js');
6 7
 
7 8
 exports.getAllAdmin = async (req, res) => {
@@ -12,7 +13,7 @@ exports.getAllAdmin = async (req, res) => {
12 13
             page, limit, search, sortBy, orderBy
13 14
         });
14 15
 
15
-        return ListResponse({ req, res, data: admin, page, limit, total, message: 'Admin data successfully retrieved' });
16
+        return AdminCollection(req, res, admin, total, page, limit, 'Admin data successfully retrieved');
16 17
     } catch (err) {
17 18
         return errorResponse(res, err);
18 19
     }
@@ -22,7 +23,7 @@ exports.showAdmin = async (req, res) => {
22 23
     try {
23 24
         const id = req.params.id;
24 25
         const data = await adminService.showAdminService(id);
25
-        return successResponse(res, data, 'Success show admin');
26
+        return AdminResource(res, data, 'Success show admin');
26 27
     } catch (err) {
27 28
         return errorResponse(res, err);
28 29
     }

+ 2 - 2
src/controllers/superadmin/LogController.js

@@ -1,5 +1,5 @@
1
+const { LogCollection } = require('../../resources/superadmin/log/LogCollection.js');
1 2
 const logService = require('../../services/superadmin/LogService.js');
2
-const { ListResponse } = require('../../utils/ListResponse.js');
3 3
 const { PaginationParam } = require('../../utils/PaginationParams.js');
4 4
 const { errorResponse } = require('../../utils/Response.js');
5 5
 
@@ -11,7 +11,7 @@ exports.getAllLogs = async (req, res) => {
11 11
             page, limit, search, sortBy, orderBy
12 12
         });
13 13
 
14
-        return ListResponse({ req, res, data: logs, page, limit, total, message: 'Logs data successfully retrieved' });
14
+        return LogCollection(req, res, logs, total, page, limit, 'Logs data successfully retrieved');
15 15
     } catch (err) {
16 16
         return errorResponse(res, err);
17 17
     }

+ 22 - 0
src/resources/admin/city/CityCollection.js

@@ -0,0 +1,22 @@
1
+const { ListResponse } = require("../../../utils/ListResponse");
2
+const { formatISOWithoutTimezone } = require("../../../utils/FormatDate.js");
3
+
4
+const formatItem = (item) => ({
5
+    ...item,
6
+    createdAt: formatISOWithoutTimezone(item.createdAt),
7
+    updatedAt: formatISOWithoutTimezone(item.updatedAt)
8
+});
9
+
10
+exports.CityCollection = (req, res, data = [], total = null, page = 1, limit = 10, message = 'Success') => {
11
+    const formattedData = data.map(formatItem);
12
+
13
+    if (typeof total !== 'number') {
14
+        return res.status(200).json({
15
+            success: true,
16
+            message,
17
+            data: Array.isArray(formattedData)
18
+        });
19
+    }
20
+
21
+    return ListResponse({ req, res, data: formattedData, total, page, limit, message });
22
+};

+ 17 - 0
src/resources/admin/city/CityResource.js

@@ -0,0 +1,17 @@
1
+const { formatISOWithoutTimezone } = require("../../../utils/FormatDate");
2
+
3
+const formatItem = (item) => ({
4
+    ...item,
5
+    createdAt: formatISOWithoutTimezone(item.createdAt),
6
+    updatedAt: formatISOWithoutTimezone(item.updatedAt)
7
+});
8
+
9
+exports.CityResource = (res, data, message = 'Success') => {
10
+    const formattedData = formatItem(data);
11
+
12
+    return res.status(200).json({
13
+        success: true,
14
+        message,
15
+        data: formattedData
16
+    });
17
+};

+ 24 - 0
src/resources/admin/executives_history/ExecutivesHistoriCollection.js

@@ -0,0 +1,24 @@
1
+const { ListResponse } = require("../../../utils/ListResponse");
2
+const { formatISOWithoutTimezone, formatDateOnly } = require("../../../utils/FormatDate.js");
3
+
4
+const formatItem = (item) => ({
5
+    ...item,
6
+    start_term: formatDateOnly(item.start_term),
7
+    end_term: formatDateOnly(item.end_term),
8
+    createdAt: formatISOWithoutTimezone(item.createdAt),
9
+    updatedAt: formatISOWithoutTimezone(item.updatedAt),
10
+});
11
+
12
+exports.ExecutivesHistoriCollection = (req, res, data = [], total = null, page = 1, limit = 10, message = 'Success') => {
13
+    const formattedData = data.map(formatItem);
14
+
15
+    if (typeof total !== 'number') {
16
+        return res.status(200).json({
17
+            success: true,
18
+            message,
19
+            data: Array.isArray(formattedData)
20
+        });
21
+    }
22
+
23
+    return ListResponse({ req, res, data: formattedData, total, page, limit, message });
24
+};

+ 19 - 0
src/resources/admin/executives_history/ExecutivesHistoriResource.js

@@ -0,0 +1,19 @@
1
+const { formatISOWithoutTimezone, formatDateOnly } = require("../../../utils/FormatDate");
2
+
3
+const formatItem = (item) => ({
4
+    ...item,
5
+    start_term: formatDateOnly(item.start_term),
6
+    end_term: formatDateOnly(item.end_term),
7
+    createdAt: formatISOWithoutTimezone(item.createdAt),
8
+    updatedAt: formatISOWithoutTimezone(item.updatedAt),
9
+});
10
+
11
+exports.ExecutivesHistoriResource = (res, data, message = 'Success') => {
12
+    const formattedData = formatItem(data);
13
+
14
+    return res.status(200).json({
15
+        success: true,
16
+        message,
17
+        data: formattedData
18
+    });
19
+};

+ 22 - 0
src/resources/admin/hospital/HospitalCollection.js

@@ -0,0 +1,22 @@
1
+const { ListResponse } = require("../../../utils/ListResponse");
2
+const { formatISOWithoutTimezone } = require("../../../utils/FormatDate.js");
3
+
4
+const formatItem = (item) => ({
5
+    ...item,
6
+    createdAt: formatISOWithoutTimezone(item.createdAt),
7
+    updatedAt: formatISOWithoutTimezone(item.updatedAt)
8
+});
9
+
10
+exports.HospitalCollection = (req, res, data = [], total = null, page = 1, limit = 10, message = 'Success') => {
11
+    const formattedData = data.map(formatItem);
12
+
13
+    if (typeof total !== 'number') {
14
+        return res.status(200).json({
15
+            success: true,
16
+            message,
17
+            data: Array.isArray(formattedData)
18
+        });
19
+    }
20
+
21
+    return ListResponse({ req, res, data: formattedData, total, page, limit, message });
22
+};

+ 17 - 0
src/resources/admin/hospital/HospitalResource.js

@@ -0,0 +1,17 @@
1
+const { formatISOWithoutTimezone } = require("../../../utils/FormatDate");
2
+
3
+const formatItem = (item) => ({
4
+    ...item,
5
+    createdAt: formatISOWithoutTimezone(item.createdAt),
6
+    updatedAt: formatISOWithoutTimezone(item.updatedAt)
7
+});
8
+
9
+exports.HospitalResource = (res, data, message = 'Success') => {
10
+    const formattedData = formatItem(data);
11
+
12
+    return res.status(200).json({
13
+        success: true,
14
+        message,
15
+        data: formattedData
16
+    });
17
+};

+ 22 - 0
src/resources/admin/province/ProvinceCollection.js

@@ -0,0 +1,22 @@
1
+const { ListResponse } = require("../../../utils/ListResponse");
2
+const { formatISOWithoutTimezone } = require("../../../utils/FormatDate.js");
3
+
4
+const formatItem = (item) => ({
5
+    ...item,
6
+    createdAt: formatISOWithoutTimezone(item.createdAt),
7
+    updatedAt: formatISOWithoutTimezone(item.updatedAt)
8
+});
9
+
10
+exports.ProvinceCollection = (req, res, data = [], total = null, page = 1, limit = 10, message = 'Success') => {
11
+    const formattedData = data.map(formatItem);
12
+
13
+    if (typeof total !== 'number') {
14
+        return res.status(200).json({
15
+            success: true,
16
+            message,
17
+            data: Array.isArray(formattedData)
18
+        });
19
+    }
20
+
21
+    return ListResponse({ req, res, data: formattedData, total, page, limit, message });
22
+};

+ 17 - 0
src/resources/admin/province/ProvinceResource.js

@@ -0,0 +1,17 @@
1
+const { formatISOWithoutTimezone } = require("../../../utils/FormatDate");
2
+
3
+const formatItem = (item) => ({
4
+    ...item,
5
+    createdAt: formatISOWithoutTimezone(item.createdAt),
6
+    updatedAt: formatISOWithoutTimezone(item.updatedAt)
7
+});
8
+
9
+exports.ProvinceResource = (res, data, message = 'Success') => {
10
+    const formattedData = formatItem(data);
11
+
12
+    return res.status(200).json({
13
+        success: true,
14
+        message,
15
+        data: formattedData
16
+    });
17
+};

+ 22 - 0
src/resources/admin/sales/SalesCollection.js

@@ -0,0 +1,22 @@
1
+const { ListResponse } = require("../../../utils/ListResponse");
2
+const { formatISOWithoutTimezone } = require("../../../utils/FormatDate.js");
3
+
4
+const formatItem = (item) => ({
5
+    ...item,
6
+    createdAt: formatISOWithoutTimezone(item.createdAt),
7
+    updatedAt: formatISOWithoutTimezone(item.updatedAt)
8
+});
9
+
10
+exports.SalesCollection = (req, res, data = [], total = null, page = 1, limit = 10, message = 'Success') => {
11
+    const formattedData = data.map(formatItem);
12
+
13
+    if (typeof total !== 'number') {
14
+        return res.status(200).json({
15
+            success: true,
16
+            message,
17
+            data: Array.isArray(formattedData)
18
+        });
19
+    }
20
+
21
+    return ListResponse({ req, res, data: formattedData, total, page, limit, message });
22
+};

+ 17 - 0
src/resources/admin/sales/SalesResource.js

@@ -0,0 +1,17 @@
1
+const { formatISOWithoutTimezone } = require("../../../utils/FormatDate");
2
+
3
+const formatItem = (item) => ({
4
+    ...item,
5
+    createdAt: formatISOWithoutTimezone(item.createdAt),
6
+    updatedAt: formatISOWithoutTimezone(item.updatedAt)
7
+});
8
+
9
+exports.SalesResource = (res, data, message = 'Success') => {
10
+    const formattedData = formatItem(data);
11
+
12
+    return res.status(200).json({
13
+        success: true,
14
+        message,
15
+        data: formattedData
16
+    });
17
+};

+ 22 - 0
src/resources/admin/vendor/VendorCollection.js

@@ -0,0 +1,22 @@
1
+const { ListResponse } = require("../../../utils/ListResponse");
2
+const { formatISOWithoutTimezone } = require("../../../utils/FormatDate.js");
3
+
4
+const formatItem = (item) => ({
5
+    ...item,
6
+    createdAt: formatISOWithoutTimezone(item.createdAt),
7
+    updatedAt: formatISOWithoutTimezone(item.updatedAt)
8
+});
9
+
10
+exports.VendorCollection = (req, res, data = [], total = null, page = 1, limit = 10, message = 'Success') => {
11
+    const formattedData = data.map(formatItem);
12
+
13
+    if (typeof total !== 'number') {
14
+        return res.status(200).json({
15
+            success: true,
16
+            message,
17
+            data: Array.isArray(formattedData)
18
+        });
19
+    }
20
+
21
+    return ListResponse({ req, res, data: formattedData, total, page, limit, message });
22
+};

+ 17 - 0
src/resources/admin/vendor/VendorResource.js

@@ -0,0 +1,17 @@
1
+const { formatISOWithoutTimezone } = require("../../../utils/FormatDate");
2
+
3
+const formatItem = (item) => ({
4
+    ...item,
5
+    createdAt: formatISOWithoutTimezone(item.createdAt),
6
+    updatedAt: formatISOWithoutTimezone(item.updatedAt)
7
+});
8
+
9
+exports.VendorResource = (res, data, message = 'Success') => {
10
+    const formattedData = formatItem(data);
11
+
12
+    return res.status(200).json({
13
+        success: true,
14
+        message,
15
+        data: formattedData
16
+    });
17
+};

+ 24 - 0
src/resources/admin/vendor_history/VendorHistoriCollection.js

@@ -0,0 +1,24 @@
1
+const { ListResponse } = require("../../../utils/ListResponse");
2
+const { formatISOWithoutTimezone, formatDateOnly } = require("../../../utils/FormatDate.js");
3
+
4
+const formatItem = (item) => ({
5
+    ...item,
6
+    contract_date: formatDateOnly(item.contract_date),
7
+    contract_expired_date: formatDateOnly(item.contract_expired_date),
8
+    createdAt: formatISOWithoutTimezone(item.createdAt),
9
+    updatedAt: formatISOWithoutTimezone(item.updatedAt),
10
+});
11
+
12
+exports.VendorHistoriCollection = (req, res, data = [], total = null, page = 1, limit = 10, message = 'Success') => {
13
+    const formattedData = data.map(formatItem);
14
+
15
+    if (typeof total !== 'number') {
16
+        return res.status(200).json({
17
+            success: true,
18
+            message,
19
+            data: Array.isArray(formattedData)
20
+        });
21
+    }
22
+
23
+    return ListResponse({ req, res, data: formattedData, total, page, limit, message });
24
+};

+ 19 - 0
src/resources/admin/vendor_history/VendorHistoriResource.js

@@ -0,0 +1,19 @@
1
+const { formatISOWithoutTimezone, formatDateOnly } = require("../../../utils/FormatDate");
2
+
3
+const formatItem = (item) => ({
4
+    ...item,
5
+    contract_date: formatDateOnly(item.contract_date),
6
+    contract_expired_date: formatDateOnly(item.contract_expired_date),
7
+    createdAt: formatISOWithoutTimezone(item.createdAt),
8
+    updatedAt: formatISOWithoutTimezone(item.updatedAt),
9
+});
10
+
11
+exports.VendorHistoriResource = (res, data, message = 'Success') => {
12
+    const formattedData = formatItem(data);
13
+
14
+    return res.status(200).json({
15
+        success: true,
16
+        message,
17
+        data: formattedData
18
+    });
19
+};

+ 7 - 0
src/resources/auth/LoginResource.js

@@ -0,0 +1,7 @@
1
+exports.LoginResource = (res, data, message = 'Success') => {
2
+    return res.status(200).json({
3
+        success: true,
4
+        message,
5
+        data
6
+    });
7
+};

+ 8 - 0
src/resources/auth/UserResource.js

@@ -0,0 +1,8 @@
1
+exports.UserResource = (res, data, message = 'Success') => {
2
+    return res.status(200).json({
3
+        success: true,
4
+        message,
5
+        // data: Array.isArray(data) ? data : { ...data }
6
+        data
7
+    });
8
+};

+ 13 - 0
src/resources/sales/area/UserAreaCollection.js

@@ -0,0 +1,13 @@
1
+const { ListResponse } = require("../../../utils/ListResponse");
2
+
3
+exports.UserAreaCollection = (req, res, data = [], total = null, page = 1, limit = 10, message = 'Success') => {
4
+    if (typeof total !== 'number') {
5
+        return res.status(200).json({
6
+            success: true,
7
+            message,
8
+            data: Array.isArray(data)
9
+        });
10
+    }
11
+
12
+    return ListResponse({ req, res, data, total, page, limit, message });
13
+};

+ 24 - 0
src/resources/sales/executives_history/ExecutivesHistoriCollection.js

@@ -0,0 +1,24 @@
1
+const { ListResponse } = require("../../../utils/ListResponse");
2
+const { formatISOWithoutTimezone, formatDateOnly } = require("../../../utils/FormatDate.js");
3
+
4
+const formatItem = (item) => ({
5
+    ...item,
6
+    start_term: formatDateOnly(item.start_term),
7
+    end_term: formatDateOnly(item.end_term),
8
+    createdAt: formatISOWithoutTimezone(item.createdAt),
9
+    updatedAt: formatISOWithoutTimezone(item.updatedAt),
10
+});
11
+
12
+exports.ExecutivesHistoriCollection = (req, res, data = [], total = null, page = 1, limit = 10, message = 'Success') => {
13
+    const formattedData = data.map(formatItem);
14
+
15
+    if (typeof total !== 'number') {
16
+        return res.status(200).json({
17
+            success: true,
18
+            message,
19
+            data: Array.isArray(formattedData)
20
+        });
21
+    }
22
+
23
+    return ListResponse({ req, res, data: formattedData, total, page, limit, message });
24
+};

+ 19 - 0
src/resources/sales/executives_history/ExecutivesHistoriResource.js

@@ -0,0 +1,19 @@
1
+const { formatISOWithoutTimezone, formatDateOnly } = require("../../../utils/FormatDate");
2
+
3
+const formatItem = (item) => ({
4
+    ...item,
5
+    start_term: formatDateOnly(item.start_term),
6
+    end_term: formatDateOnly(item.end_term),
7
+    createdAt: formatISOWithoutTimezone(item.createdAt),
8
+    updatedAt: formatISOWithoutTimezone(item.updatedAt),
9
+});
10
+
11
+exports.ExecutivesHistoriResource = (res, data, message = 'Success') => {
12
+    const formattedData = formatItem(data);
13
+
14
+    return res.status(200).json({
15
+        success: true,
16
+        message,
17
+        data: formattedData
18
+    });
19
+};

+ 22 - 0
src/resources/sales/hospital/HospitalCollection.js

@@ -0,0 +1,22 @@
1
+const { ListResponse } = require("../../../utils/ListResponse");
2
+const { formatISOWithoutTimezone } = require("../../../utils/FormatDate.js");
3
+
4
+const formatItem = (item) => ({
5
+    ...item,
6
+    createdAt: formatISOWithoutTimezone(item.createdAt),
7
+    updatedAt: formatISOWithoutTimezone(item.updatedAt)
8
+});
9
+
10
+exports.HospitalCollection = (req, res, data = [], total = null, page = 1, limit = 10, message = 'Success') => {
11
+    const formattedData = data.map(formatItem);
12
+
13
+    if (typeof total !== 'number') {
14
+        return res.status(200).json({
15
+            success: true,
16
+            message,
17
+            data: Array.isArray(formattedData)
18
+        });
19
+    }
20
+
21
+    return ListResponse({ req, res, data: formattedData, total, page, limit, message });
22
+};

+ 17 - 0
src/resources/sales/hospital/HospitalResource.js

@@ -0,0 +1,17 @@
1
+const { formatISOWithoutTimezone } = require("../../../utils/FormatDate");
2
+
3
+const formatItem = (item) => ({
4
+    ...item,
5
+    createdAt: formatISOWithoutTimezone(item.createdAt),
6
+    updatedAt: formatISOWithoutTimezone(item.updatedAt)
7
+});
8
+
9
+exports.HospitalResource = (res, data, message = 'Success') => {
10
+    const formattedData = formatItem(data);
11
+
12
+    return res.status(200).json({
13
+        success: true,
14
+        message,
15
+        data: formattedData
16
+    });
17
+};

+ 22 - 0
src/resources/sales/vendor/VendorCollection.js

@@ -0,0 +1,22 @@
1
+const { ListResponse } = require("../../../utils/ListResponse");
2
+const { formatISOWithoutTimezone } = require("../../../utils/FormatDate.js");
3
+
4
+const formatItem = (item) => ({
5
+    ...item,
6
+    createdAt: formatISOWithoutTimezone(item.createdAt),
7
+    updatedAt: formatISOWithoutTimezone(item.updatedAt),
8
+});
9
+
10
+exports.VendorCollection = (req, res, data = [], total = null, page = 1, limit = 10, message = 'Success') => {
11
+    const formattedData = data.map(formatItem);
12
+
13
+    if (typeof total !== 'number') {
14
+        return res.status(200).json({
15
+            success: true,
16
+            message,
17
+            data: Array.isArray(formattedData)
18
+        });
19
+    }
20
+
21
+    return ListResponse({ req, res, data: formattedData, total, page, limit, message });
22
+};

+ 24 - 0
src/resources/sales/vendor_history/VendorHistoriCollection.js

@@ -0,0 +1,24 @@
1
+const { ListResponse } = require("../../../utils/ListResponse");
2
+const { formatISOWithoutTimezone, formatDateOnly } = require("../../../utils/FormatDate.js");
3
+
4
+const formatItem = (item) => ({
5
+    ...item,
6
+    contract_date: formatDateOnly(item.contract_date),
7
+    contract_expired_date: formatDateOnly(item.contract_expired_date),
8
+    createdAt: formatISOWithoutTimezone(item.createdAt),
9
+    updatedAt: formatISOWithoutTimezone(item.updatedAt),
10
+});
11
+
12
+exports.VendorHistoriCollection = (req, res, data = [], total = null, page = 1, limit = 10, message = 'Success') => {
13
+    const formattedData = data.map(formatItem);
14
+
15
+    if (typeof total !== 'number') {
16
+        return res.status(200).json({
17
+            success: true,
18
+            message,
19
+            data: Array.isArray(formattedData)
20
+        });
21
+    }
22
+
23
+    return ListResponse({ req, res, data: formattedData, total, page, limit, message });
24
+};

+ 19 - 0
src/resources/sales/vendor_history/VendorHistoriResource.js

@@ -0,0 +1,19 @@
1
+const { formatISOWithoutTimezone, formatDateOnly } = require("../../../utils/FormatDate");
2
+
3
+const formatItem = (item) => ({
4
+    ...item,
5
+    contract_date: formatDateOnly(item.contract_date),
6
+    contract_expired_date: formatDateOnly(item.contract_expired_date),
7
+    createdAt: formatISOWithoutTimezone(item.createdAt),
8
+    updatedAt: formatISOWithoutTimezone(item.updatedAt),
9
+});
10
+
11
+exports.VendorHistoriResource = (res, data, message = 'Success') => {
12
+    const formattedData = formatItem(data);
13
+
14
+    return res.status(200).json({
15
+        success: true,
16
+        message,
17
+        data: formattedData
18
+    });
19
+};

+ 22 - 0
src/resources/superadmin/admin/AdminCollection.js

@@ -0,0 +1,22 @@
1
+const { ListResponse } = require("../../../utils/ListResponse");
2
+const { formatISOWithoutTimezone } = require("../../../utils/FormatDate.js");
3
+
4
+const formatAdminItem = (item) => ({
5
+    ...item,
6
+    createdAt: formatISOWithoutTimezone(item.createdAt),
7
+    updatedAt: formatISOWithoutTimezone(item.updatedAt)
8
+});
9
+
10
+exports.AdminCollection = (req, res, data = [], total = null, page = 1, limit = 10, message = 'Success') => {
11
+    const formattedData = data.map(formatAdminItem);
12
+
13
+    if (typeof total !== 'number') {
14
+        return res.status(200).json({
15
+            success: true,
16
+            message,
17
+            data: Array.isArray(formattedData)
18
+        });
19
+    }
20
+
21
+    return ListResponse({ req, res, data: formattedData, total, page, limit, message });
22
+};

+ 17 - 0
src/resources/superadmin/admin/AdminResource.js

@@ -0,0 +1,17 @@
1
+const { formatISOWithoutTimezone } = require("../../../utils/FormatDate");
2
+
3
+const formatAdminItem = (item) => ({
4
+    ...item,
5
+    createdAt: formatISOWithoutTimezone(item.createdAt),
6
+    updatedAt: formatISOWithoutTimezone(item.updatedAt)
7
+});
8
+
9
+exports.AdminResource = (res, data, message = 'Success') => {
10
+    const formattedData = formatAdminItem(data);
11
+
12
+    return res.status(200).json({
13
+        success: true,
14
+        message,
15
+        data: formattedData
16
+    });
17
+};

+ 21 - 0
src/resources/superadmin/log/LogCollection.js

@@ -0,0 +1,21 @@
1
+const { ListResponse } = require("../../../utils/ListResponse");
2
+const { formatISOWithoutTimezone } = require("../../../utils/FormatDate.js");
3
+
4
+const formatAdminItem = (item) => ({
5
+    ...item,
6
+    createdAt: formatISOWithoutTimezone(item.createdAt),
7
+});
8
+
9
+exports.LogCollection = (req, res, data = [], total = null, page = 1, limit = 10, message = 'Success') => {
10
+    const formattedData = data.map(formatAdminItem);
11
+
12
+    if (typeof total !== 'number') {
13
+        return res.status(200).json({
14
+            success: true,
15
+            message,
16
+            data: Array.isArray(formattedData)
17
+        });
18
+    }
19
+
20
+    return ListResponse({ req, res, data: formattedData, total, page, limit, message });
21
+};

+ 7 - 11
src/services/admin/CityService.js

@@ -19,13 +19,13 @@ exports.getAllCityService = async ({ page, limit, search, sortBy, orderBy }) =>
19 19
         CityRepository.countAll(where)
20 20
     ]);
21 21
 
22
-    const formatted = cities.map(v => ({
23
-        ...v,
24
-        createdAt: formatISOWithoutTimezone(v.createdAt),
25
-        updatedAt: formatISOWithoutTimezone(v.updatedAt),
26
-    }));
22
+    // const formatted = cities.map(v => ({
23
+    //     ...v,
24
+    //     createdAt: formatISOWithoutTimezone(v.createdAt),
25
+    //     updatedAt: formatISOWithoutTimezone(v.updatedAt),
26
+    // }));
27 27
 
28
-    return { cities: formatted, total };
28
+    return { cities, total };
29 29
 };
30 30
 
31 31
 exports.showCityService = async (id) => {
@@ -34,11 +34,7 @@ exports.showCityService = async (id) => {
34 34
         throw new HttpException("Data city not found", 404);
35 35
     }
36 36
 
37
-    return {
38
-        ...city,
39
-        createdAt: formatISOWithoutTimezone(city.createdAt),
40
-        updatedAt: formatISOWithoutTimezone(city.updatedAt),
41
-    };
37
+    return city;
42 38
 };
43 39
 
44 40
 exports.storeCityService = async (validateData, req) => {

+ 3 - 17
src/services/admin/ExecutivesHistoryService.js

@@ -25,20 +25,12 @@ exports.getAllExecutivesHistoryService = async ({ page, limit, search, sortBy, o
25 25
         deletedAt: null
26 26
     };
27 27
 
28
-    const [vendor_histories, total] = await Promise.all([
28
+    const [executives_histories, total] = await Promise.all([
29 29
         ExecutivesHistoryRepository.findAll({ skip, take: limit, where, orderBy: { [sortBy]: orderBy } }),
30 30
         ExecutivesHistoryRepository.countAll(where)
31 31
     ]);
32 32
 
33
-    const formatted = vendor_histories.map(v => ({
34
-        ...v,
35
-        start_term: formatDateOnly(v.start_term),
36
-        end_term: formatDateOnly(v.end_term),
37
-        createdAt: formatISOWithoutTimezone(v.createdAt),
38
-        updatedAt: formatISOWithoutTimezone(v.updatedAt),
39
-    }));
40
-
41
-    return { vendor_histories: formatted, total };
33
+    return { executives_histories, total };
42 34
 };
43 35
 
44 36
 exports.showExecutivesHistoryService = async (req) => {
@@ -59,13 +51,7 @@ exports.showExecutivesHistoryService = async (req) => {
59 51
         throw new HttpException("Executives history not found", 404);
60 52
     }
61 53
 
62
-    return {
63
-        ...executivesHistory,
64
-        start_term: formatDateOnly(executivesHistory.start_term),
65
-        end_term: formatDateOnly(executivesHistory.end_term),
66
-        createdAt: formatISOWithoutTimezone(executivesHistory.createdAt),
67
-        updatedAt: formatISOWithoutTimezone(executivesHistory.updatedAt),
68
-    };
54
+    return executivesHistory;
69 55
 };
70 56
 
71 57
 exports.storeExecutivesHistoryService = async (validateData, req) => {

+ 2 - 12
src/services/admin/HospitalService.js

@@ -27,13 +27,7 @@ exports.getAllHospitalService = async ({ page, limit, search, sortBy, orderBy, p
27 27
         HospitalRepository.countAll(where)
28 28
     ]);
29 29
 
30
-    const formatted = hospitals.map(v => ({
31
-        ...v,
32
-        createdAt: formatISOWithoutTimezone(v.createdAt),
33
-        updatedAt: formatISOWithoutTimezone(v.updatedAt),
34
-    }));
35
-
36
-    return { hospitals: formatted, total };
30
+    return { hospitals, total };
37 31
 };
38 32
 
39 33
 exports.showHospitalService = async (id) => {
@@ -42,11 +36,7 @@ exports.showHospitalService = async (id) => {
42 36
         throw new HttpException("Data hospital not found", 404);
43 37
     }
44 38
 
45
-    return {
46
-        ...hospital,
47
-        createdAt: formatISOWithoutTimezone(hospital.createdAt),
48
-        updatedAt: formatISOWithoutTimezone(hospital.updatedAt),
49
-    };
39
+    return hospital;
50 40
 };
51 41
 
52 42
 exports.storeHospitalService = async (validateData, req) => {

+ 8 - 12
src/services/admin/ProvinceService.js

@@ -18,13 +18,13 @@ exports.getAllProvinceService = async ({ page, limit, search, sortBy, orderBy })
18 18
         ProvinceRepository.countAll(where)
19 19
     ]);
20 20
 
21
-    const formatted = provinces.map(v => ({
22
-        ...v,
23
-        createdAt: formatISOWithoutTimezone(v.createdAt),
24
-        updatedAt: formatISOWithoutTimezone(v.updatedAt),
25
-    }));
21
+    // const formatted = provinces.map(v => ({
22
+    //     ...v,
23
+    //     createdAt: formatISOWithoutTimezone(v.createdAt),
24
+    //     updatedAt: formatISOWithoutTimezone(v.updatedAt),
25
+    // }));
26 26
 
27
-    return { provinces: formatted, total };
27
+    return { provinces, total };
28 28
 };
29 29
 
30 30
 exports.showProvinceService = async (id) => {
@@ -32,12 +32,8 @@ exports.showProvinceService = async (id) => {
32 32
     if (!province) {
33 33
         throw new HttpException("Data province not found", 404);
34 34
     }
35
-    
36
-    return {
37
-        ...province,
38
-        createdAt: formatISOWithoutTimezone(province.createdAt),
39
-        updatedAt: formatISOWithoutTimezone(province.updatedAt),
40
-    };
35
+
36
+    return province;
41 37
 };
42 38
 
43 39
 exports.storeProvinceService = async (validateData, req) => {

+ 3 - 13
src/services/admin/SalesService.js

@@ -19,13 +19,7 @@ exports.getAllSalesService = async ({ page, limit, search, sortBy, orderBy }) =>
19 19
         SalesRepository.UserRepository.countAll(where)
20 20
     ]);
21 21
 
22
-    const formatted = sales.map(v => ({
23
-        ...v,
24
-        createdAt: formatISOWithoutTimezone(v.createdAt),
25
-        updatedAt: formatISOWithoutTimezone(v.updatedAt),
26
-    }));
27
-
28
-    return { sales: formatted, total };
22
+    return { sales, total };
29 23
 };
30 24
 
31 25
 exports.showSalesService = async (id) => {
@@ -33,12 +27,8 @@ exports.showSalesService = async (id) => {
33 27
     if (!sales) {
34 28
         throw new HttpException("Data sales not found", 404);
35 29
     }
36
-    
37
-    return {
38
-        ...sales,
39
-        createdAt: formatISOWithoutTimezone(sales.createdAt),
40
-        updatedAt: formatISOWithoutTimezone(sales.updatedAt),
41
-    };
30
+
31
+    return sales;
42 32
 };
43 33
 
44 34
 exports.storeSalesService = async (userData, req) => {

+ 2 - 16
src/services/admin/VendorHistoryService.js

@@ -30,15 +30,7 @@ exports.getAllVendorHistoryService = async ({ page, limit, search, sortBy, order
30 30
         VendorHistoryRepository.countAll(where)
31 31
     ]);
32 32
 
33
-    const formatted = vendor_histories.map(v => ({
34
-        ...v,
35
-        contract_date: formatDateOnly(v.contract_date),
36
-        contract_expired_date: formatDateOnly(v.contract_expired_date),
37
-        createdAt: formatISOWithoutTimezone(v.createdAt),
38
-        updatedAt: formatISOWithoutTimezone(v.updatedAt),
39
-    }));
40
-
41
-    return { vendor_histories: formatted, total };
33
+    return { vendor_histories, total };
42 34
 };
43 35
 
44 36
 exports.showVendorHistoryService = async (req) => {
@@ -59,13 +51,7 @@ exports.showVendorHistoryService = async (req) => {
59 51
         throw new HttpException("Vendor history not found", 404);
60 52
     }
61 53
 
62
-    return {
63
-        ...vendorHistory,
64
-        contract_date: formatDateOnly(vendorHistory.contract_date),
65
-        contract_expired_date: formatDateOnly(vendorHistory.contract_expired_date),
66
-        createdAt: formatISOWithoutTimezone(vendorHistory.createdAt),
67
-        updatedAt: formatISOWithoutTimezone(vendorHistory.updatedAt),
68
-    };
54
+    return vendorHistory;
69 55
 };
70 56
 
71 57
 exports.storeVendorHistoryService = async (validateData, req) => {

+ 3 - 13
src/services/admin/VendorService.js

@@ -19,13 +19,7 @@ exports.getAllVendorService = async ({ page, limit, search, sortBy, orderBy }) =
19 19
         VendorRepository.countAll(where)
20 20
     ]);
21 21
 
22
-    const formatted = vendors.map(v => ({
23
-        ...v,
24
-        createdAt: formatISOWithoutTimezone(v.createdAt),
25
-        updatedAt: formatISOWithoutTimezone(v.updatedAt),
26
-    }));
27
-
28
-    return { vendors: formatted, total };
22
+    return { vendors, total };
29 23
 };
30 24
 
31 25
 exports.showVendorService = async (id) => {
@@ -33,12 +27,8 @@ exports.showVendorService = async (id) => {
33 27
     if (!vendor) {
34 28
         throw new HttpException("Data vendor not found", 404);
35 29
     }
36
-    
37
-    return {
38
-        ...vendor,
39
-        createdAt: formatISOWithoutTimezone(vendor.createdAt),
40
-        updatedAt: formatISOWithoutTimezone(vendor.updatedAt),
41
-    };
30
+
31
+    return vendor;
42 32
 };
43 33
 
44 34
 exports.storeVendorService = async (validateData, req) => {

+ 2 - 2
src/services/auth/AuthService.js

@@ -36,9 +36,9 @@ exports.loginService = async ({ username, password }, req) => {
36 36
 
37 37
         await loginLog(req, user);
38 38
 
39
-        const token = jwt.sign(user, JWT_SECRET, { expiresIn: '1d' });
39
+        user.token = jwt.sign(user, JWT_SECRET, { expiresIn: '1d' });
40 40
 
41
-        return { user, token };
41
+        return user;
42 42
     } catch (error) {
43 43
         throw new HttpException('Invalid username or password', 401);
44 44
     }

+ 0 - 1
src/services/sales/AreaService.js

@@ -1,6 +1,5 @@
1 1
 const areaRepository = require('../../repository/sales/AreaRepository.js');
2 2
 const { SearchFilter } = require('../../utils/SearchFilter.js');
3
-const prisma = require('../../prisma/PrismaClient.js');
4 3
 
5 4
 exports.getAllAreaByUserService = async ({ page, limit, search, sortBy, orderBy }, req) => {
6 5
     const skip = (page - 1) * limit;

+ 3 - 18
src/services/sales/ExecutivesHistoryService.js

@@ -4,7 +4,6 @@ const prisma = require('../../prisma/PrismaClient.js');
4 4
 const { SearchFilter } = require('../../utils/SearchFilter.js');
5 5
 const timeLocal = require('../../utils/TimeLocal.js');
6 6
 const { createLog, updateLog, deleteLog } = require('../../utils/LogActivity.js');
7
-const { formatDateOnly, formatISOWithoutTimezone } = require('../../utils/FormatDate.js');
8 7
 
9 8
 exports.getAllExecutivesHistoryService = async ({ page, limit, search, sortBy, orderBy }, req) => {
10 9
     const skip = (page - 1) * limit;
@@ -25,20 +24,12 @@ exports.getAllExecutivesHistoryService = async ({ page, limit, search, sortBy, o
25 24
         deletedAt: null
26 25
     };
27 26
 
28
-    const [vendor_histories, total] = await Promise.all([
27
+    const [executives_histories, total] = await Promise.all([
29 28
         ExecutivesHistoryRepository.findAll({ skip, take: limit, where, orderBy: { [sortBy]: orderBy } }),
30 29
         ExecutivesHistoryRepository.countAll(where)
31 30
     ]);
32 31
 
33
-    const formatted = vendor_histories.map(v => ({
34
-        ...v,
35
-        start_term: formatDateOnly(v.start_term),
36
-        end_term: formatDateOnly(v.end_term),
37
-        createdAt: formatISOWithoutTimezone(v.createdAt),
38
-        updatedAt: formatISOWithoutTimezone(v.updatedAt),
39
-    }));
40
-
41
-    return { vendor_histories: formatted, total };
32
+    return { executives_histories, total };
42 33
 };
43 34
 
44 35
 exports.showExecutivesHistoryService = async (req) => {
@@ -59,13 +50,7 @@ exports.showExecutivesHistoryService = async (req) => {
59 50
         throw new HttpException("Executives history not found", 404);
60 51
     }
61 52
 
62
-    return {
63
-        ...executivesHistory,
64
-        start_term: formatDateOnly(executivesHistory.start_term),
65
-        end_term: formatDateOnly(executivesHistory.end_term),
66
-        createdAt: formatISOWithoutTimezone(executivesHistory.createdAt),
67
-        updatedAt: formatISOWithoutTimezone(executivesHistory.updatedAt),
68
-    };
53
+    return executivesHistory;
69 54
 };
70 55
 
71 56
 exports.storeExecutivesHistoryService = async (validateData, req) => {

+ 2 - 12
src/services/sales/HospitalService.js

@@ -34,13 +34,7 @@ exports.getAllHospitalByAreaService = async ({ page, limit, search, sortBy, orde
34 34
         salesHospitalRepository.countAll(where)
35 35
     ]);
36 36
 
37
-    const formatted = hospitals.map(v => ({
38
-        ...v,
39
-        createdAt: formatISOWithoutTimezone(v.createdAt),
40
-        updatedAt: formatISOWithoutTimezone(v.updatedAt),
41
-    }));
42
-
43
-    return { hospitals: formatted, total };
37
+    return { hospitals, total };
44 38
 };
45 39
 
46 40
 // exports.getAllHospitalByAreaService = async (
@@ -222,9 +216,5 @@ exports.showHospitalService = async (id) => {
222 216
         throw new HttpException("Data hospital not found", 404);
223 217
     }
224 218
 
225
-    return {
226
-        ...hospital,
227
-        createdAt: formatISOWithoutTimezone(hospital.createdAt),
228
-        updatedAt: formatISOWithoutTimezone(hospital.updatedAt),
229
-    };
219
+    return hospital;
230 220
 };

+ 2 - 16
src/services/sales/VendorHistoryService.js

@@ -30,15 +30,7 @@ exports.getAllVendorHistoryService = async ({ page, limit, search, sortBy, order
30 30
         VendorHistoryRepository.countAll(where)
31 31
     ]);
32 32
 
33
-    const formatted = vendor_histories.map(v => ({
34
-        ...v,
35
-        contract_date: formatDateOnly(v.contract_date),
36
-        contract_expired_date: formatDateOnly(v.contract_expired_date),
37
-        createdAt: formatISOWithoutTimezone(v.createdAt),
38
-        updatedAt: formatISOWithoutTimezone(v.updatedAt),
39
-    }));
40
-
41
-    return { vendor_histories: formatted, total };
33
+    return { vendor_histories, total };
42 34
 };
43 35
 
44 36
 exports.showVendorHistoryService = async (req) => {
@@ -59,13 +51,7 @@ exports.showVendorHistoryService = async (req) => {
59 51
         throw new HttpException("Vendor history not found", 404);
60 52
     }
61 53
 
62
-    return {
63
-        ...vendorHistory,
64
-        contract_date: formatDateOnly(vendorHistory.contract_date),
65
-        contract_expired_date: formatDateOnly(vendorHistory.contract_expired_date),
66
-        createdAt: formatISOWithoutTimezone(vendorHistory.createdAt),
67
-        updatedAt: formatISOWithoutTimezone(vendorHistory.updatedAt),
68
-    };
54
+    return vendorHistory;
69 55
 };
70 56
 
71 57
 exports.storeVendorHistoryService = async (validateData, req) => {

+ 1 - 8
src/services/sales/VendorService.js

@@ -2,7 +2,6 @@ const VendorRepository = require('../../repository/sales/VendorRepository.js');
2 2
 const HttpException = require('../../utils/HttpException.js');
3 3
 const prisma = require('../../prisma/PrismaClient.js');
4 4
 const { SearchFilter } = require('../../utils/SearchFilter.js');
5
-const { formatISOWithoutTimezone, formatDateOnly } = require('../../utils/FormatDate.js');
6 5
 
7 6
 exports.getAllVendorService = async ({ page, limit, search, sortBy, orderBy }, req) => {
8 7
     const skip = (page - 1) * limit;
@@ -52,13 +51,7 @@ exports.getAllVendorService = async ({ page, limit, search, sortBy, orderBy }, r
52 51
         VendorRepository.countAll(where)
53 52
     ]);
54 53
 
55
-    const formatted = vendors.map(v => ({
56
-        ...v,
57
-        createdAt: formatISOWithoutTimezone(v.createdAt),
58
-        updatedAt: formatISOWithoutTimezone(v.updatedAt),
59
-    }));
60
-
61
-    return { vendors: formatted, total };
54
+    return { vendors, total };
62 55
 };
63 56
 
64 57
 // exports.showVendorService = async (id) => {

BIN
storage/img/1751436316148-835632934.png