11import { ErrorResponse , SuccessResponse } from "@/dtos" ;
22import { memberServices } from "@/services/member.service" ;
3+ import { uploadImageToCloudinary } from "@/utils/cloudinary.uploader"
34import { HTTP } from "@/utils/constants" ;
4- import { error } from "console" ;
55import type { Request , Response } from "express" ;
6- import { success } from "zod" ;
7- import { PaginationResponse } from "@/dtos" ;
6+ import { PaginationResponse } from "@/dtos" ;
87class MemberController {
98 async createMember ( req : Request , res : Response ) {
109 try {
11- const { name, role, year} = req . body ;
12- const result = await memberServices . createMember ( { name, role, year} ) ;
10+ const memberData = req . body ;
11+ const imageFile = req . file ;
12+
13+ const result = await memberServices . createMember (
14+ memberData ,
15+ imageFile
16+ ) ;
1317 if ( ! result . success ) {
1418 return res . status ( HTTP . BAD_REQUEST ) . json ( ErrorResponse ( HTTP . BAD_REQUEST , result . error ) ) ;
1519 }
@@ -22,62 +26,63 @@ class MemberController{
2226 }
2327
2428
25- async getMembers ( req : Request , res : Response ) {
26- try {
27- const query = ( req as any ) . validatedQuery ;
28- const page = query . page ;
29- const limit = query . limit ;
30- const skip = ( page - 1 ) * limit ;
29+ async getMembers ( req : Request , res : Response ) {
30+ try {
31+ const query = ( req as any ) . validatedQuery ;
32+ const page = query . page ;
33+ const limit = query . limit ;
34+ const skip = ( page - 1 ) * limit ;
3135
32- const result = await memberServices . getMembers ( { skip, limit } ) ;
36+ const result = await memberServices . getMembers ( { skip, limit } ) ;
37+
38+ if ( ! result . success ) {
39+ return res
40+ . status ( HTTP . NOT_FOUND )
41+ . json ( ErrorResponse ( HTTP . NOT_FOUND , result . error ) ) ;
42+ }
43+
44+ if ( ! result . data ) {
45+ return res
46+ . status ( HTTP . NOT_FOUND )
47+ . json ( ErrorResponse ( HTTP . NOT_FOUND , "No member data found" ) ) ;
48+ }
49+ const { members, total } = result . data ;
3350
34- if ( ! result . success ) {
3551 return res
36- . status ( HTTP . NOT_FOUND )
37- . json ( ErrorResponse ( HTTP . NOT_FOUND , result . error ) ) ;
38- }
52+ . status ( HTTP . OK )
53+ . json (
54+ PaginationResponse (
55+ HTTP . OK ,
56+ "Members fetched successfully" ,
57+ members ,
58+ total ,
59+ page ,
60+ limit
61+ )
62+ ) ;
3963
40- if ( ! result . data ) {
64+ } catch ( error ) {
65+ console . log ( `Get Members Controller Error: ${ error } ` ) ;
4166 return res
42- . status ( HTTP . NOT_FOUND )
43- . json ( ErrorResponse ( HTTP . NOT_FOUND , "No member data found" ) ) ;
67+ . status ( HTTP . INTERNAL )
68+ . json (
69+ ErrorResponse (
70+ HTTP . INTERNAL ,
71+ ( error as Error ) . message || "Internal Server Error"
72+ )
73+ ) ;
4474 }
45- const { members, total } = result . data ;
46-
47- return res
48- . status ( HTTP . OK )
49- . json (
50- PaginationResponse (
51- HTTP . OK ,
52- "Members fetched successfully" ,
53- members ,
54- total ,
55- page ,
56- limit
57- )
58- ) ;
59-
60- } catch ( error ) {
61- console . log ( `Get Members Controller Error: ${ error } ` ) ;
62- return res
63- . status ( HTTP . INTERNAL )
64- . json (
65- ErrorResponse (
66- HTTP . INTERNAL ,
67- ( error as Error ) . message || "Internal Server Error"
68- )
69- ) ;
7075 }
71- }
7276
7377
7478 async updateMember ( req : Request , res : Response ) {
7579
7680 try {
7781 const memberId = req . params . id
7882 const updates = req . body
83+ const imageFile = req . file
7984
80- const result = await memberServices . updateMember ( memberId , updates )
85+ const result = await memberServices . updateMember ( memberId , updates , imageFile )
8186 if ( ! result . success ) {
8287 return res . status ( HTTP . BAD_REQUEST ) . json ( ErrorResponse ( HTTP . BAD_REQUEST , result . error ) )
8388 }
0 commit comments