Skip to content

Commit

Permalink
라스트 QA 사항 반영 (#322)
Browse files Browse the repository at this point in the history
Juhongseok authored Nov 30, 2023
1 parent 82cb0f2 commit 0afea8c
Showing 10 changed files with 40 additions and 18 deletions.
Original file line number Diff line number Diff line change
@@ -8,6 +8,7 @@
import org.devcourse.resumeme.business.event.service.vo.ApplyUpdateVo;
import org.devcourse.resumeme.business.resume.service.ComponentService;
import org.devcourse.resumeme.business.resume.service.ResumeService;
import org.devcourse.resumeme.business.snapshot.service.SnapshotCapture;
import org.devcourse.resumeme.common.response.IdResponse;
import org.devcourse.resumeme.global.auth.model.jwt.JwtUser;
import org.springframework.security.core.annotation.AuthenticationPrincipal;
@@ -30,6 +31,8 @@ public class MenteeToEventController {

private final MenteeToEventService applyService;

private final SnapshotCapture commentCapture;

@GetMapping("/{eventId}")
public IdResponse getParticipantRecord(@PathVariable Long eventId, @AuthenticationPrincipal JwtUser user) {
Long menteeId = user.id();
@@ -47,7 +50,9 @@ public void applyEvent(@PathVariable Long eventId, @RequestBody ApplyToEventRequ
@PatchMapping("/{eventId}")
public void updateEvent(@PathVariable Long eventId, @RequestBody ApplyUpdateRequest request) {
ApplyUpdateVo applyUpdateVo = request.toVo();
applyService.update(eventId, applyUpdateVo);
Long resumeId = applyService.update(eventId, applyUpdateVo);

commentCapture.capture(eventId, resumeId);
}

}
Original file line number Diff line number Diff line change
@@ -190,7 +190,7 @@ public int compareTo(Event other) {
return -1;
}

return eventTimeInfo.getOpenDateTime().compareTo(other.eventTimeInfo.getOpenDateTime());
return other.eventTimeInfo.getOpenDateTime().compareTo(eventTimeInfo.getOpenDateTime());
}

public void updateInfo(String title, String content, int maximumAttendee) {
Original file line number Diff line number Diff line change
@@ -47,6 +47,7 @@ public class MenteeToEvent extends BaseEntity {
@Enumerated(STRING)
private Progress progress;

@Getter
private String rejectMessage;

@Getter
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package org.devcourse.resumeme.business.event.repository;

import org.devcourse.resumeme.business.event.domain.MenteeToEvent;
import org.springframework.data.jpa.repository.EntityGraph;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
@@ -12,6 +13,7 @@ public interface MenteeToEventRepository extends JpaRepository<MenteeToEvent, Lo
@Query("select me from MenteeToEvent me join fetch me.event where me.resumeId = :resumeId")
List<MenteeToEvent> findAllByResumeId(@Param(value = "resumeId") Long resumeId);

@EntityGraph(attributePaths = "event")
List<MenteeToEvent> findByMenteeId(Long menteeId);

}
Original file line number Diff line number Diff line change
@@ -9,11 +9,12 @@
import org.devcourse.resumeme.business.event.repository.MenteeToEventRepository;
import org.devcourse.resumeme.business.event.service.vo.AcceptMenteeToEvent;
import org.devcourse.resumeme.business.event.service.vo.ApplyUpdateVo;
import org.devcourse.resumeme.business.snapshot.service.SnapshotCapture;
import org.devcourse.resumeme.global.exception.ExceptionCode;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

import static org.devcourse.resumeme.global.exception.ExceptionCode.EVENT_NOT_FOUND;

@Service
@@ -25,8 +26,6 @@ public class MenteeToEventService {

private final EventRepository eventRepository;

private final SnapshotCapture commentCapture;

public Long getRecord(Long eventId, Long menteeId) {
return menteeToEventRepository.findByMenteeId(menteeId).stream()
.filter(record -> record.getEvent().getId().equals(eventId))
@@ -35,14 +34,12 @@ public Long getRecord(Long eventId, Long menteeId) {
.orElse(null);
}

public void update(Long eventId, ApplyUpdateVo applyUpdateVo) {
public Long update(Long eventId, ApplyUpdateVo applyUpdateVo) {
Event event = eventRepository.findWithApplicantsById(eventId)
.orElseThrow(() -> new EventException(EVENT_NOT_FOUND));

ApplimentUpdate model = applyUpdateVo.toModel();
Long resumeId = model.update(event);

commentCapture.capture(eventId, resumeId);
return model.update(event);
}

public void acceptMentee(AcceptMenteeToEvent ids) {
@@ -66,4 +63,8 @@ private Long getApplyEventCount(Long menteeId) {
.count();
}

public List<MenteeToEvent> getByMenteeId(Long menteeId) {
return menteeToEventRepository.findByMenteeId(menteeId);
}

}
Original file line number Diff line number Diff line change
@@ -18,6 +18,8 @@
import org.hibernate.annotations.SQLDelete;
import org.hibernate.annotations.Where;

import java.time.LocalDate;

import static org.devcourse.resumeme.common.util.Validator.Condition.isBlank;
import static org.devcourse.resumeme.common.util.Validator.notNull;

@@ -116,6 +118,7 @@ public boolean isOrigin() {
}

public void makeToOrigin() {
this.title = this.title.concat(" - 첨삭 반영 본").concat(LocalDate.now().toString());
this.originResumeId = null;
}

Original file line number Diff line number Diff line change
@@ -5,6 +5,7 @@
import org.devcourse.resumeme.business.event.domain.MenteeToEvent;
import org.devcourse.resumeme.business.event.service.EventPositionService;
import org.devcourse.resumeme.business.event.service.EventService;
import org.devcourse.resumeme.business.event.service.MenteeToEventService;
import org.devcourse.resumeme.business.event.service.vo.AllEventFilter;
import org.devcourse.resumeme.business.resume.entity.Resume;
import org.devcourse.resumeme.business.resume.service.ResumeService;
@@ -29,6 +30,8 @@ public class UserEventController {

private final EventPositionService eventPositionService;

private final MenteeToEventService menteeToEventService;

@GetMapping("/mentors/{mentorId}/events")
public List<MentorEventResponse> all(@PathVariable Long mentorId) {
return eventService.getAllWithPage(new AllEventFilter(mentorId, null), Pageable.unpaged()).stream()
@@ -53,11 +56,8 @@ private List<Resume> getResumes(Event event) {

@GetMapping("/mentees/{menteeId}/events")
public List<MenteeEventResponse> getOwnEvents(@PathVariable Long menteeId) {
return eventService.getAllWithPage(new AllEventFilter(null, menteeId), Pageable.unpaged()).stream()
.flatMap(event -> event.getApplicants().stream()
.filter(applicant -> applicant.isSameMentee(menteeId))
.map(applicant -> new MenteeEventResponse(applicant, event))
.toList().stream())
return menteeToEventService.getByMenteeId(menteeId).stream()
.map(MenteeEventResponse::new)
.toList();
}

Original file line number Diff line number Diff line change
@@ -5,12 +5,16 @@

import java.time.LocalDateTime;

public record MenteeEventResponse(Long eventId, Long resumeId, String status, String title,
public record MenteeEventResponse(Long eventId, Long resumeId, String status, String title, String rejectMessage,
String mentorName, LocalDateTime startDate, LocalDateTime endDate) {

public MenteeEventResponse(MenteeToEvent applicant, Event event) {
this(event.getId(), applicant.getResumeId(), applicant.getProgress().name(), event.getEventInfo().getTitle(),
this(event.getId(), applicant.getResumeId(), applicant.getProgress().name(), event.getEventInfo().getTitle(), applicant.getRejectMessage(),
event.getMentor().getNickname(), event.getEventTimeInfo().getOpenDateTime(), event.getEventTimeInfo().getCloseDateTime());
}

public MenteeEventResponse(MenteeToEvent menteeToEvent) {
this(menteeToEvent, menteeToEvent.getEvent());
}

}
Original file line number Diff line number Diff line change
@@ -3,6 +3,7 @@
import org.devcourse.resumeme.business.event.domain.Event;
import org.devcourse.resumeme.business.event.domain.EventInfo;
import org.devcourse.resumeme.business.event.domain.EventTimeInfo;
import org.devcourse.resumeme.business.event.domain.MenteeToEvent;
import org.devcourse.resumeme.business.event.service.vo.AllEventFilter;
import org.devcourse.resumeme.business.resume.entity.Resume;
import org.devcourse.resumeme.business.user.domain.Provider;
@@ -140,7 +141,7 @@ void init() throws NoSuchFieldException, IllegalAccessException {
// given
Long menteeId = 1L;

given(eventService.getAllWithPage(new AllEventFilter(null, menteeId), Pageable.unpaged())).willReturn(new PageImpl<>(List.of(event)));
given(menteeToEventService.getByMenteeId(menteeId)).willReturn(List.of(new MenteeToEvent(event, menteeId, 1L)));

// when
ResultActions result = mvc.perform(get("/api/v1/mentees/{menteeId}/events", menteeId));
@@ -162,7 +163,8 @@ void init() throws NoSuchFieldException, IllegalAccessException {
fieldWithPath("[].title").type(STRING).description("이벤트 제목"),
fieldWithPath("[].mentorName").type(STRING).description("이벤트 생성 멘토 이름"),
fieldWithPath("[].startDate").type(STRING).description("이벤트 시작 날짜"),
fieldWithPath("[].endDate").type(STRING).description("이벤트 종료 날짜")
fieldWithPath("[].endDate").type(STRING).description("이벤트 종료 날짜"),
fieldWithPath("[].rejectMessage").type(STRING).description("반려 사요")
)
)
);
Original file line number Diff line number Diff line change
@@ -18,6 +18,7 @@
import org.devcourse.resumeme.business.snapshot.controller.SnapshotController;
import org.devcourse.resumeme.business.resume.service.ComponentService;
import org.devcourse.resumeme.business.resume.service.ResumeService;
import org.devcourse.resumeme.business.snapshot.service.CommentCapture;
import org.devcourse.resumeme.business.snapshot.service.SnapshotService;
import org.devcourse.resumeme.business.user.controller.FollowController;
import org.devcourse.resumeme.business.user.controller.UserController;
@@ -92,6 +93,9 @@
@DisplayNameGeneration(DisplayNameGenerator.ReplaceUnderscores.class)
public abstract class ControllerUnitTest {

@MockBean
protected CommentCapture commentCapture;

@MockBean
protected AccountService accountService;

0 comments on commit 0afea8c

Please sign in to comment.