Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature/#633 행사 추가 api 요청 명세 변경 #634

Merged

Conversation

amaran-th
Copy link
Collaborator

#️⃣연관된 이슈

#633

📝작업 내용

관리자페이지에서 행사 정보를 추가할 수 있도록 행사 생성/수정 API의 요청 데이터 형식을 수정했습니다.
+)행사 당 첨부할 수 있는 이미지의 최대 개수가 2개로 제한이 걸려있어서 상한을 200개로 늘렸습니다.

예상 소요 시간 및 실제 소요 시간

9/23 9/23

💬리뷰 요구사항(선택)

왜인진 모르겠는데 쿼리 최적화 작업했던 커밋 일부가 섞여 들어갔네요,,,죄송합니다🥲
추후에 별도로 PR을 날릴 예정이니 무시해주셔도 될 것 같아요...!

@amaran-th amaran-th added Backend 백엔드 관련 이슈 기능 추가 새로운 기능 추가 및 기존 기능 변경 High Priority 리뷰 우선순위가 높은 PR labels Sep 23, 2023
@amaran-th amaran-th added this to the 6차 스프린트 milestone Sep 23, 2023
@amaran-th amaran-th self-assigned this Sep 23, 2023
@amaran-th amaran-th added Low Priority 리뷰 우선순위가 낮은 PR and removed High Priority 리뷰 우선순위가 높은 PR labels Sep 23, 2023
Copy link
Collaborator

@hyeonjerry hyeonjerry left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

수고하셨습니다.
몇 가지 의견 남겼습니다. 확인 부탁드려요.

/events?name=인프콘 2023&location=코엑스&informationUrl=https://~~~&startDateTime=2023:06:01:12:00:00&endDateTime=2023:09:01:12:00:00&applyStartDateTime=2023:05:01:12:00:00&applyEndDateTime=2023:06:01:12:00:00&tags=백엔드,안드로이드&imageUrl=https://image.url&type=CONFERENCE&eventMode=ON_OFFLINE&paymentType=FREE
----
.HTTP request
include::{snippets}/add-event/http-request.adoc[]
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

제가 알기로는 request 스니펫이 이해하기 너무 어려워서 의도적으로 문자열로 하드코딩 해 둔 것으로 아는데 혹시 수정하신 이유가 있으신가요

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

스니펫이 수정되기도 했고, 수정 후의 request 스니펫은 그대로 사용해도 이해하기 어렵지 않을거라 생각해서 수정해주었습니다!
image

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

multipart 로 adoc 만들면 엄청 지저분해지지 않아요??

@@ -89,7 +87,7 @@ class EventApiTest extends MockMvcTestHelper {
fieldWithPath("imageUrls[]").description("이미지 URL들").optional(),
fieldWithPath("organization").description("행사기관")
);

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

이 부분 컨벤션이 다른 것 같아요.
저만 그런지 모르겠는데 저는 빈 라인에 공백을 추가하지 않는데 혹시 다른 분들은 어떤가요?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

확인하고 수정했습니다! 코드 스타일을 수정한 적이 없는데 설정이 다르게 되어 있더라구요🤔
알려주셔서 감사합니다~!

@@ -2,7 +2,7 @@

public enum ImageType {
FEED(5),
EVENT(2);
EVENT(200);
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

이건 그냥 개인적인 의견인에 이벤트는 이미지 업로드에 제한이 없으니까 무제한으로 둔다는 의미로 0을 두고 아래 isOver 메서드에서 0은 무조건 false를 반환하게 하는건 어떠신가요?
0은 매직넘버이니 상수로 빼서 의미를 부여하고요.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

오 너무 좋은 의견인 것 같아요! 그렇게 반영하겠습니다!

Copy link
Collaborator

@hong-sile hong-sile left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

잘 모르는 부분이라서 어렵군요... 몇몇 코멘트 남겼으니 확인해주세요

return eventService.addEvent(request, LocalDate.now());
public EventDetailResponse addEvent(@RequestPart @Valid final EventDetailRequest request,
@RequestPart final List<MultipartFile> images) {
return eventService.addEvent(request, images, LocalDate.now());
}

@PutMapping("/{eventId}")
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(consumes = MediaType.MULTIPART_FORM_DATA_VALUE) 가 왜 한 쪽에만 있는건가요?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

updateEvent에 consumes 속성을 설정해주는 걸 깜빡하고 누락한 것 같습니다.
그런데 해당 설정을 해주지 않았는데도 조금 전에 했던 테스트가 잘 동작해서, 왜 그런지 개인적으로 알아보았는데요.
consumes 설정을 해주지 않은 경우, 스프링이 요청 헤더의 Content-Type을 보고 컨텐츠 타입을 지정해줘서 받아들이기 때문에 필수적인 속성은 아니라고 합니다.
하지만 요청으로 받을 컨텐츠 타입을 제한해주는 역할을 해서, API의 요청 컨텐츠의 타입이 확실한 경우 명시해주는 것이 좋다고 하더라구요. 그래서 updateEvent에도 addEvent와 동일하게 consumes 속성을 설정해주었습니다.

@@ -196,7 +198,7 @@ public EventDetailResponse addEvent(final EventDetailRequest request, final Loca
}

public EventDetailResponse updateEvent(final Long eventId, final EventDetailRequest request,
final LocalDate today) {
final List<MultipartFile> images, final LocalDate today) {
final Event event = eventRepository.findById(eventId)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

update에서는 images 파라미터가 안 사용 되는 것 같은데 파라미터로 넣으신 이유가 있나요?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

관리자 페이지(프론트)를 미리 완성시켜놓으려고 요청 포맷만 미리 수정해두었습니다...!
지금 생각해보니 이슈를 분리하고 했어야 했는데 혼동하게 한 것 같네요. 제 실수입니다🥲
새로 판 피쳐 브랜치에서는 해당 images 데이터를 사용하도록 구현해둔 상태입니다!

Copy link
Collaborator

@java-saeng java-saeng left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

관리자 페이지 만드시느라 고생하셨습니다 !!

@amaran-th amaran-th merged commit 4634d17 into backend-main Sep 25, 2023
1 check passed
@chws0508 chws0508 deleted the Feature/#633-행사-추가-API-요청-명세-변경 branch October 11, 2023 06:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Backend 백엔드 관련 이슈 Low Priority 리뷰 우선순위가 낮은 PR 기능 추가 새로운 기능 추가 및 기존 기능 변경
Projects
Status: Done
Development

Successfully merging this pull request may close these issues.

4 participants