Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
W
WebBack
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package Registry
Container Registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Terms and privacy
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
websystem
WebBack
Merge requests
!19
미팅방 서비스 관련 검증 로직 보강 및 트랜잭션 적용
Code
Review changes
Check out branch
Download
Patches
Plain diff
Merged
미팅방 서비스 관련 검증 로직 보강 및 트랜잭션 적용
feature/#12
into
develop
Overview
0
Commits
2
Pipelines
0
Changes
5
Merged
세현 임
requested to merge
feature/#12
into
develop
3 months ago
Overview
0
Commits
2
Pipelines
0
Changes
5
Expand
0
0
Merge request reports
Viewing commit
b3bea64d
Prev
Next
Show latest version
5 files
+
355
−
209
Inline
Compare changes
Side-by-side
Inline
Show whitespace changes
Show one file at a time
Files
5
Search (e.g. *.vue) (Ctrl+P)
b3bea64d
refactor,feature: 트랜잭션 적용 로직 및 검증로직 보강(
#12
)
· b3bea64d
tpgus2603
authored
3 months ago
controllers/meetingController.js
+
75
−
49
Options
// controllers/meetingController.js
const
MeetingService
=
require
(
'
../services/meetingService
'
);
const
CreateMeetingRequestDTO
=
require
(
'
../dtos/CreateMeetingRequestDTO
'
);
class
MeetingController
{
async
createMeeting
(
req
,
res
)
{
try
{
const
result
=
await
MeetingService
.
createMeeting
(
req
.
body
);
res
.
status
(
201
).
json
(
result
);
}
catch
(
err
)
{
console
.
error
(
'
번개 모임 생성 오류:
'
,
err
);
res
.
status
(
500
).
json
({
error
:
err
.
message
||
'
번개 모임 생성 실패
'
});
}
}
/**
* 번개 모임 생성
* POST /api/meetings
*/
async
createMeeting
(
req
,
res
)
{
try
{
const
userId
=
req
.
userId
;
// 인증 미들웨어를 통해 설정된 사용자 ID
const
meetingData
=
{
...
req
.
body
,
created_by
:
userId
};
async
getMeetings
(
req
,
res
)
{
const
{
userId
}
=
req
.
query
;
// CreateMeetingRequestDTO를 사용하여 요청 데이터 검증
const
createMeetingDTO
=
new
CreateMeetingRequestDTO
(
meetingData
);
createMeetingDTO
.
validate
();
if
(
!
userId
)
{
return
res
.
status
(
400
).
json
({
error
:
'
사용자 ID가 필요합니다.
'
});
const
result
=
await
MeetingService
.
createMeeting
(
meetingData
);
res
.
status
(
201
).
json
(
result
);
}
catch
(
err
)
{
console
.
error
(
'
번개 모임 생성 오류:
'
,
err
);
res
.
status
(
500
).
json
({
error
:
err
.
message
||
'
번개 모임 생성 실패
'
});
}
}
try
{
const
meetings
=
await
MeetingService
.
getMeetings
(
userId
);
res
.
status
(
200
).
json
(
meetings
);
}
catch
(
err
)
{
console
.
error
(
'
모임 목록 조회 오류:
'
,
err
);
res
.
status
(
500
).
json
({
error
:
err
.
message
||
'
모임 목록 조회 실패
'
});
/**
* 번개 모임 목록 조회
* GET /api/meetings
*/
async
getMeetings
(
req
,
res
)
{
try
{
const
userId
=
req
.
userId
;
// 인증 미들웨어를 통해 설정된 사용자 ID
const
meetings
=
await
MeetingService
.
getMeetings
(
userId
);
res
.
status
(
200
).
json
(
meetings
);
}
catch
(
err
)
{
console
.
error
(
'
모임 목록 조회 오류:
'
,
err
);
res
.
status
(
500
).
json
({
error
:
err
.
message
||
'
모임 목록 조회 실패
'
});
}
}
}
async
closeMeeting
(
req
,
res
)
{
const
{
meetingId
}
=
req
.
params
;
/**
* 번개 모임 마감
* PATCH /api/meetings/:meetingId/close
*/
async
closeMeeting
(
req
,
res
)
{
const
{
meetingId
}
=
req
.
params
;
try
{
const
meeting
=
await
MeetingService
.
closeMeeting
(
meetingId
);
res
.
status
(
200
).
json
({
message
:
'
모임이 마감되었습니다.
'
,
meeting
});
}
catch
(
err
)
{
console
.
error
(
'
모임 마감 오류:
'
,
err
);
res
.
status
(
500
).
json
({
error
:
err
.
message
||
'
모임 마감 실패
'
});
try
{
const
meeting
=
await
MeetingService
.
closeMeeting
(
meetingId
);
res
.
status
(
200
).
json
({
message
:
'
모임이 마감되었습니다.
'
,
meeting
});
}
catch
(
err
)
{
console
.
error
(
'
모임 마감 오류:
'
,
err
);
res
.
status
(
500
).
json
({
error
:
err
.
message
||
'
모임 마감 실패
'
});
}
}
}
async
joinMeeting
(
req
,
res
)
{
const
{
meetingId
}
=
req
.
params
;
const
{
user_id
}
=
req
.
body
;
/**
* 번개 모임 참가
* POST /api/meetings/:meetingId/join
*/
async
joinMeeting
(
req
,
res
)
{
try
{
const
{
meetingId
}
=
req
.
params
;
const
userId
=
req
.
userId
;
// 인증 미들웨어를 통해 설정된 사용자 ID
try
{
await
MeetingService
.
joinMeeting
(
meetingId
,
user_id
);
res
.
status
(
200
).
json
({
message
:
'
모임 및 채팅방 참가 완료
'
});
}
catch
(
err
)
{
console
.
error
(
'
모임 참가 오류:
'
,
err
);
res
.
status
(
500
).
json
({
error
:
err
.
message
||
'
모임 참가 실패
'
});
await
MeetingService
.
joinMeeting
(
meetingId
,
userId
);
res
.
status
(
200
).
json
({
message
:
'
모임 및 채팅방 참가 완료
'
}
);
}
catch
(
err
)
{
console
.
error
(
'
모임 참가 오류:
'
,
err
)
;
res
.
status
(
500
).
json
({
error
:
err
.
message
||
'
모임 참가 실패
'
}
);
}
}
}
async
getMeetingDetail
(
req
,
res
)
{
const
{
meetingId
}
=
req
.
params
;
/**
* 번개 모임 상세 조회
* GET /api/meetings/:meetingId
*/
async
getMeetingDetail
(
req
,
res
)
{
const
{
meetingId
}
=
req
.
params
;
try
{
const
meetingDetail
=
await
MeetingService
.
getMeetingDetail
(
meetingId
);
res
.
status
(
200
).
json
(
meetingDetail
);
}
catch
(
err
)
{
console
.
error
(
'
모임 상세 조회 오류:
'
,
err
);
res
.
status
(
500
).
json
({
error
:
err
.
message
||
'
모임 상세 조회 실패
'
});
try
{
const
meetingDetail
=
await
MeetingService
.
getMeetingDetail
(
meetingId
);
res
.
status
(
200
).
json
(
meetingDetail
);
}
catch
(
err
)
{
console
.
error
(
'
모임 상세 조회 오류:
'
,
err
);
res
.
status
(
500
).
json
({
error
:
err
.
message
||
'
모임 상세 조회 실패
'
});
}
}
}
}
module
.
exports
=
new
MeetingController
();
\ No newline at end of file
module
.
exports
=
new
MeetingController
();
Loading