-
Notifications
You must be signed in to change notification settings - Fork 6
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
feat : 이벤트 생성 및 수정 기능 #186
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
이미지 url은
이미지 업로드api 는 제가 작업할 예정이고
근데 지금약간 저희 와프랑 다른 api 인것같은데
어떻게 생각하시나유?
-
공연 간편 생성 ( create )
-
공연 기본정보 업데이트
공연 기본정보는 공연 등록이후에는 수정불가 -
공연 이미지/상세 업데이트
이렇게 크게 세가지로 나뉘어지는것같은데
한번 확인 부탁드려요!
공연 상세 이미지 리스트 저장은 ( 포스터 말구 )
https://prohannah.tistory.com/133
@ElementCollection
같은걸 활용해서 저장하면 더 좋을것같긴해요!
...ong-Api/src/main/java/band/gosrock/api/event/model/dto/request/UpdateEventDetailRequest.java
Outdated
Show resolved
Hide resolved
private String placeName; | ||
// 공연 장소 정보 | ||
@Embedded private EventPlace eventPlace; | ||
|
||
// 공연 상세 주소 | ||
private String placeAddress; | ||
@Embedded private EventDetail eventDetail; | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
vo 에 기본값 설정해서 저장하면
null 관리하기 좀더 쉬울것 같긴해요!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
vo 에 기본값 설정해서 저장하면 null 관리하기 좀더 쉬울것 같긴해요!
직관적으로 default 지정하는 걸로 바꾸겠습니다
/** 이벤트의 시작과 종료 시간을 지정 */ | ||
public void setTime(LocalDateTime startAt, LocalDateTime endAt) { | ||
// 이벤트 종료가 시작보다 빠르면 안됨 | ||
if (startAt.isAfter(endAt)) { | ||
throw EventCannotEndBeforeStartException.EXCEPTION; | ||
} | ||
this.startAt = startAt; | ||
this.endAt = endAt; | ||
} | ||
|
||
/** 티켓팅 시작과 종료 시간을 지정 */ | ||
public void setTicketingTime(LocalDateTime startAt, LocalDateTime endAt) { | ||
// 이벤트 종료가 시작보다 빠르면 안됨 | ||
if (startAt.isAfter(endAt)) { | ||
throw EventCannotEndBeforeStartException.EXCEPTION; | ||
} | ||
this.ticketingStartAt = startAt; | ||
this.ticketingEndAt = endAt; | ||
} | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
채린이 도메인에서도 위 해당 vo 사용중인데
기간을 vo로 관리하시는거 어떤가유!
다만이제 Ticket 이랑 이벤트 두개를 vo로 바꾸게되면
startAt,endAt 필드가 두개 생기는거라
이름 재지정은 필요하긴 합니다
https://github.com/Gosrock/DuDoong-Backend/blob/dev/DuDoong-Domain/src/main/java/band/gosrock/domain/domains/order/domain/PaymentInfo.java
attributeoverride 어노테이션 참고하시면 될것같아요!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
채린이 도메인에서도 위 해당 vo 사용중인데 기간을 vo로 관리하시는거 어떤가유!
다만이제 Ticket 이랑 이벤트 두개를 vo로 바꾸게되면 startAt,endAt 필드가 두개 생기는거라 이름 재지정은 필요하긴 합니다 https://github.com/Gosrock/DuDoong-Backend/blob/dev/DuDoong-Domain/src/main/java/band/gosrock/domain/domains/order/domain/PaymentInfo.java
attributeoverride 어노테이션 참고하시면 될것같아요!
참고해서 바꿔볼게용
DuDoong-Api/src/main/java/band/gosrock/api/event/model/dto/request/CreateEventRequest.java
Show resolved
Hide resolved
Event.builder() | ||
.hostId(createEventRequest.getHostId()) | ||
.name(createEventRequest.getName()) | ||
.urlName(createEventRequest.getUrlName()) | ||
.build(); | ||
event.setEventPlace(toEventPlace(createEventRequest)); | ||
event.setTime(createEventRequest.getStartAt(), createEventRequest.getEndAt()); | ||
return eventService.updateEventUrlName(event, createEventRequest.getUrlName()); | ||
} | ||
|
||
public EventDetail toEventDetail(UpdateEventDetailRequest updateEventDetailRequest) { | ||
// todo :: 러닝 타임, 티켓팅 시각 정보는 추후 협의 | ||
return EventDetail.builder() | ||
.posterImage(updateEventDetailRequest.getPosterImageUrl()) | ||
.detailImage1(updateEventDetailRequest.getDetailImageUrl1()) | ||
.detailImage2(updateEventDetailRequest.getDetailImageUrl2()) | ||
.detailImage3(updateEventDetailRequest.getDetailImageUrl3()) | ||
.content(updateEventDetailRequest.getContent()) | ||
.build(); | ||
} | ||
|
||
public EventPlace toEventPlace(CreateEventRequest createEventRequest) { | ||
return EventPlace.builder() | ||
.placeName(createEventRequest.getPlaceName()) | ||
.placeAddress(createEventRequest.getPlaceAddress()) | ||
.latitude(createEventRequest.getLatitude()) | ||
.longitude(createEventRequest.getLongitude()) | ||
.build(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
VO의 from 처럼 빌더를 정적 메서드로 묶어서 표시하면 더 깔끔하고 좋을 거 같은데 어떤가용
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
VO의 from 처럼 빌더를 정적 메서드로 묶어서 표시하면 더 깔끔하고 좋을 거 같은데 어떤가용
엔티티 내부에 들어가는 애들이라 여기 말고 위치할 곳이 없어보이는데 좋은 방법 있을까요?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
수고하셨습니다! LGTM ⭐
DuDoong-Api/src/main/java/band/gosrock/api/event/controller/EventController.java
Outdated
Show resolved
Hide resolved
지금 이거는 GUI 따라 작업한건데 와프가 맞는지 GUI 가 맞는지 확실하게 할 필요가 있을 거 같아요 |
Kudos, SonarCloud Quality Gate passed! 0 Bugs |
개요
작업사항
변경로직