Skip to content

Commit

Permalink
✨ [STMT-179] 생성된 활동을 응답 값으로 반환하는 기능 구현 (#145)
Browse files Browse the repository at this point in the history
* ✨ [STMT-263] 활동 생성 API 응답값으로 생성된 활동 정보 반환

* 📝 [STMT-263] 활동 생성 API 응답값 변경에 따라 API 명세서 응답 필드 수정

* 📝 [STMT-263] API 명세서에 활동 생성 API 응답 값 명세
  • Loading branch information
05AM authored Jul 29, 2024
1 parent 30b8df8 commit 40e1a69
Show file tree
Hide file tree
Showing 5 changed files with 32 additions and 7 deletions.
2 changes: 1 addition & 1 deletion src/docs/asciidoc/index.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -459,8 +459,8 @@ include::{snippets}/create-activity/success/request-headers.adoc[]
include::{snippets}/create-activity/success/request-fields.adoc[]

===== 응답 성공 (201)
.응답 없음
include::{snippets}/create-activity/success/response-body.adoc[]
include::{snippets}/create-activity/success/response-fields.adoc[]

===== 응답 실패 (400)
.활동 생성 요청 값이 유효하지 않은 경우
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
package com.stumeet.server.activity.adapter.in;

import com.stumeet.server.activity.adapter.in.response.ActivityDetailResponse;
import com.stumeet.server.activity.application.port.in.ActivityCreateUseCase;
import com.stumeet.server.activity.application.port.in.ActivityQueryUseCase;
import com.stumeet.server.activity.application.port.in.command.ActivityCreateCommand;
import com.stumeet.server.common.annotation.WebAdapter;
import com.stumeet.server.common.auth.model.LoginMember;
Expand All @@ -22,16 +24,18 @@
public class ActivityCreateApi {

private final ActivityCreateUseCase activityCreateUseCase;
private final ActivityQueryUseCase activityQueryUseCase;

@PostMapping("/studies/{studyId}/activities")
public ResponseEntity<ApiResponse<Void>> create(
public ResponseEntity<ApiResponse<ActivityDetailResponse>> create(
@PathVariable Long studyId,
@AuthenticationPrincipal LoginMember loginMember,
@RequestBody @Valid ActivityCreateCommand command
) {
activityCreateUseCase.create(studyId, command, loginMember.getMember().getId());
Long createdId = activityCreateUseCase.create(studyId, command, loginMember.getId());
ActivityDetailResponse response = activityQueryUseCase.getById(studyId, createdId, loginMember.getId());

return ResponseEntity.status(HttpStatus.CREATED)
.body(ApiResponse.success(SuccessCode.ACTIVITY_CREATE_SUCCESS));
.body(ApiResponse.success(SuccessCode.ACTIVITY_CREATE_SUCCESS, response));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,5 @@
import com.stumeet.server.activity.application.port.in.command.ActivityCreateCommand;

public interface ActivityCreateUseCase {
void create(Long studyId, ActivityCreateCommand command, Long memberId);
Long create(Long studyId, ActivityCreateCommand command, Long memberId);
}
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ public class ActivityCreateService implements ActivityCreateUseCase {
private final ActivityParticipantUseCaseMapper activityParticipantUseCaseMapper;

@Override
public void create(Long studyId, ActivityCreateCommand command, Long memberId) {
public Long create(Long studyId, ActivityCreateCommand command, Long memberId) {
studyValidationUseCase.checkById(studyId);
studyMemberValidationUseCase.checkStudyJoinMember(studyId, memberId);

Expand All @@ -50,5 +50,7 @@ public void create(Long studyId, ActivityCreateCommand command, Long memberId) {

List<ActivityImage> images = activityImageUseCaseMapper.toDomains(command.images(), createdActivity);
activityImageCreatePort.create(images);

return createdActivity.getId();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,26 @@ void successTest() throws Exception {
),
responseFields(
fieldWithPath("code").description("응답 코드"),
fieldWithPath("message").description("응답 메시지")
fieldWithPath("message").description("응답 메시지"),
fieldWithPath("data.id").description("활동 ID"),
fieldWithPath("data.category").description("활동 유형"),
fieldWithPath("data.title").description("활동 제목"),
fieldWithPath("data.content").description("활동 내용"),
fieldWithPath("data.imageUrl[].id").description("활동 이미지의 아이디"),
fieldWithPath("data.imageUrl[].imageUrl").description("활동 이미지의 URL"),
fieldWithPath("data.author.memberId").description("활동 작성자 ID"),
fieldWithPath("data.author.name").description("활동 작성자 이름"),
fieldWithPath("data.author.profileImageUrl").description("활동 작성자 프로필 이미지 URL"),
fieldWithPath("data.participants[].memberId").description("참여자 ID"),
fieldWithPath("data.participants[].name").description("참여자 이름"),
fieldWithPath("data.participants[].profileImageUrl").description("참여자 프로필 이미지 URL"),
fieldWithPath("data.status").description("나의 활동 상태"),
fieldWithPath("data.startDate").description("활동 시작일"),
fieldWithPath("data.endDate").description("활동 종료일"),
fieldWithPath("data.location").description("장소"),
fieldWithPath("data.createdAt").description("활동 생성일"),
fieldWithPath("data.isAuthor").description("작성자 여부"),
fieldWithPath("data.isAdmin").description("관리자 여부")
)
));
}
Expand Down

0 comments on commit 40e1a69

Please sign in to comment.