1
1
import { createAnnouncementValidation } from "../validation/joi.js" ;
2
- import { handleError } from "./controllerUtils .js" ;
2
+ import { asyncHandler } from "../utils/errorUtils .js" ;
3
3
4
4
const SERVICE_NAME = "announcementController" ;
5
5
@@ -28,16 +28,10 @@ class AnnouncementController {
28
28
*
29
29
* @returns {Promise<void> } A promise that resolves once the response is sent.
30
30
*/
31
- createAnnouncement = async ( req , res , next ) => {
32
- try {
31
+ createAnnouncement = asyncHandler (
32
+ async ( req , res , next ) => {
33
33
await createAnnouncementValidation . validateAsync ( req . body ) ;
34
- } catch ( error ) {
35
- return next ( handleError ( error , SERVICE_NAME ) ) ; // Handle Joi validation errors
36
- }
37
-
38
- const { title, message } = req . body ;
39
-
40
- try {
34
+ const { title, message } = req . body ;
41
35
const announcementData = {
42
36
title : title . trim ( ) ,
43
37
message : message . trim ( ) ,
@@ -49,10 +43,10 @@ class AnnouncementController {
49
43
msg : this . stringService . createAnnouncement ,
50
44
data : newAnnouncement ,
51
45
} ) ;
52
- } catch ( error ) {
53
- next ( handleError ( error , SERVICE_NAME , "createAnnouncement" ) ) ;
54
- }
55
- } ;
46
+ } ,
47
+ SERVICE_NAME ,
48
+ "createAnnouncement"
49
+ ) ;
56
50
57
51
/**
58
52
* Handles retrieving announcements with pagination.
@@ -63,17 +57,17 @@ class AnnouncementController {
63
57
* - `msg`: A message about the success of the request.
64
58
* @param {Function } next - The next middleware function in the stack for error handling.
65
59
*/
66
- getAnnouncement = async ( req , res , next ) => {
67
- try {
60
+ getAnnouncement = asyncHandler (
61
+ async ( req , res , next ) => {
68
62
const allAnnouncements = await this . db . getAnnouncements ( ) ;
69
63
return res . success ( {
70
64
msg : this . stringService . getAnnouncement ,
71
65
data : allAnnouncements ,
72
66
} ) ;
73
- } catch ( error ) {
74
- next ( handleError ( error , SERVICE_NAME , "getAnnouncement" ) ) ;
75
- }
76
- } ;
67
+ } ,
68
+ SERVICE_NAME ,
69
+ "getAnnouncement"
70
+ ) ;
77
71
}
78
72
79
73
export default AnnouncementController ;
0 commit comments