Skip to content

Commit

Permalink
feat: 웹용 월별 일정 조회 API 구현
Browse files Browse the repository at this point in the history
  • Loading branch information
junseokkim committed Feb 19, 2024
1 parent 63c6168 commit 19f8c33
Show file tree
Hide file tree
Showing 5 changed files with 51 additions and 20 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,10 @@

import com.umc.networkingService.config.security.auth.CurrentMember;
import com.umc.networkingService.domain.member.entity.Member;
import com.umc.networkingService.domain.schedule.dto.response.ScheduleResponse.ScheduleDetail;
import com.umc.networkingService.domain.schedule.dto.response.ScheduleResponse.ScheduleInfo;
import com.umc.networkingService.domain.schedule.dto.response.ScheduleResponse.ScheduleInfoSummariesInCalendar;
import com.umc.networkingService.domain.schedule.dto.response.ScheduleResponse.ScheduleInfoSummaryLists;
import com.umc.networkingService.domain.schedule.dto.response.ScheduleResponse.ScheduleInfos;
import com.umc.networkingService.domain.schedule.service.ScheduleService;
import com.umc.networkingService.global.common.base.BaseResponse;
import io.swagger.v3.oas.annotations.Operation;
Expand Down Expand Up @@ -43,8 +44,8 @@ public BaseResponse<ScheduleInfoSummaryLists> getScheduleLists(@CurrentMember Me
@ApiResponse(responseCode = "COMMON200", description = "성공"),
@ApiResponse(responseCode = "SCHEDULE001", description = "존재하지 않은 스케줄입니다.")
})
public BaseResponse<ScheduleDetail> getScheduleDetail(@CurrentMember Member member,
@PathVariable("scheduleId") UUID scheduleId) {
public BaseResponse<ScheduleInfo> getScheduleDetail(@CurrentMember Member member,
@PathVariable("scheduleId") UUID scheduleId) {

return BaseResponse.onSuccess(scheduleService.getScheduleDetail(member, scheduleId));
}
Expand All @@ -56,9 +57,19 @@ public BaseResponse<ScheduleDetail> getScheduleDetail(@CurrentMember Member memb
@ApiResponses(value = {
@ApiResponse(responseCode = "COMMON200", description = "성공")
})
public BaseResponse<ScheduleInfoSummariesInCalendar> getSchedule(@CurrentMember Member member,
@RequestParam LocalDate date) {
public BaseResponse<ScheduleInfoSummariesInCalendar> getScheduleByMonth(@CurrentMember Member member,
@RequestParam LocalDate date) {

return BaseResponse.onSuccess(scheduleService.getCalendarByMonth(member, date));
return BaseResponse.onSuccess(scheduleService.getScheduleByMonth(member, date));
}

@Operation(summary = "웹용 캘린더 조회 API", description = "홈 화면의 달력을 조회하는 API입니다.")
@ApiResponses(value = {
@ApiResponse(responseCode = "COMMON200", description = "성공")
})
@GetMapping("/calendar/web")
public BaseResponse<ScheduleInfos> getScheduleByMonthToWeb(@CurrentMember Member member,
@RequestParam LocalDate date) {
return BaseResponse.onSuccess(scheduleService.getScheduleByMonthToWeb(member, date));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ public static class ScheduleId {
@AllArgsConstructor
@NoArgsConstructor
@Builder
public static class ScheduleDetail {
public static class ScheduleInfo {
private UUID scheduleId;
private String writerName;
private String writerNickname;
Expand All @@ -75,8 +75,13 @@ public static class ScheduleDetail {
private LocalDateTime endDateTime;
private String placeSetting;
private HostType hostType;

}


@Getter
@Builder
@AllArgsConstructor
@NoArgsConstructor
public static class ScheduleInfos {
private List<ScheduleInfo> schedules;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@
@Component
public class ScheduleMapper {

public ScheduleDetail toScheduleDetail(Schedule schedule) {
return ScheduleDetail.builder()
public ScheduleInfo toScheduleInfo(Schedule schedule) {
return ScheduleInfo.builder()
.scheduleId(schedule.getId())
.writerName(schedule.getWriter().getName())
.writerNickname(schedule.getWriter().getNickname())
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,20 +3,22 @@
import com.umc.networkingService.domain.member.entity.Member;
import com.umc.networkingService.domain.schedule.dto.request.ScheduleRequest.CreateSchedule;
import com.umc.networkingService.domain.schedule.dto.request.ScheduleRequest.UpdateSchedule;
import com.umc.networkingService.domain.schedule.dto.response.ScheduleResponse.ScheduleDetail;
import com.umc.networkingService.domain.schedule.dto.response.ScheduleResponse;
import com.umc.networkingService.domain.schedule.dto.response.ScheduleResponse.ScheduleInfo;
import com.umc.networkingService.domain.schedule.dto.response.ScheduleResponse.ScheduleId;
import com.umc.networkingService.domain.schedule.dto.response.ScheduleResponse.ScheduleInfoSummariesInCalendar;
import com.umc.networkingService.domain.schedule.dto.response.ScheduleResponse.ScheduleInfoSummaryLists;
import com.umc.networkingService.domain.schedule.dto.response.ScheduleResponse.ScheduleInfos;

import java.time.LocalDate;
import java.util.UUID;

public interface ScheduleService {
ScheduleInfoSummariesInCalendar getCalendarByMonth(Member member, LocalDate date);
ScheduleInfoSummariesInCalendar getScheduleByMonth(Member member, LocalDate date);
ScheduleInfos getScheduleByMonthToWeb(Member member, LocalDate date);
ScheduleId createSchedule(Member member, CreateSchedule request);
ScheduleId updateSchedule(Member member, UUID scheduleId, UpdateSchedule request);
ScheduleId deleteSchedule(Member member, UUID scheduleId);
ScheduleInfoSummaryLists getScheduleLists(Member member, LocalDate date);
ScheduleDetail getScheduleDetail(Member member, UUID scheduleId);

ScheduleInfo getScheduleDetail(Member member, UUID scheduleId);
}
Original file line number Diff line number Diff line change
Expand Up @@ -30,19 +30,32 @@ public class ScheduleServiceImpl implements ScheduleService {
private final MemberService memberService;

@Override
public ScheduleInfoSummariesInCalendar getCalendarByMonth(Member loginMember, LocalDate date) {
public ScheduleInfoSummariesInCalendar getScheduleByMonth(Member loginMember, LocalDate date) {

Member member = memberService.loadEntity(loginMember.getId());

List<Schedule> schedulesLists = validateSchedules(member,
scheduleRepository.findSchedulesByYearAndMonth(date));
List<Schedule> schedulesLists = validateSchedules(member, scheduleRepository.findSchedulesByYearAndMonth(date))
.stream().sorted(Comparator.comparing(Schedule::getStartDateTime)).toList();

return scheduleMapper.toScheduleInfoSummariesInCalendar(
schedulesLists.stream()
.map(scheduleMapper::toScheduleInfoSummaryInCalendar)
.toList());
}

@Override
public ScheduleInfos getScheduleByMonthToWeb(Member loginMember, LocalDate date) {
Member member = memberService.loadEntity(loginMember.getId());

List<Schedule> schedulesLists = validateSchedules(member, scheduleRepository.findSchedulesByYearAndMonth(date))
.stream().sorted(Comparator.comparing(Schedule::getStartDateTime)).toList();

return new ScheduleInfos(
schedulesLists.stream()
.map(scheduleMapper::toScheduleInfo)
.toList());
}

@Override
public ScheduleInfoSummaryLists getScheduleLists(Member loginMember, LocalDate date) {

Expand Down Expand Up @@ -91,11 +104,11 @@ private boolean validateScheduleSemester(Member member, Schedule schedule) {
}

@Override
public ScheduleDetail getScheduleDetail(Member member, UUID scheduleId) {
public ScheduleInfo getScheduleDetail(Member member, UUID scheduleId) {
Schedule schedule = scheduleRepository.findById(scheduleId)
.orElseThrow(() -> new RestApiException(ScheduleErrorCode.EMPTY_SCHEDULE));

return scheduleMapper.toScheduleDetail(schedule);
return scheduleMapper.toScheduleInfo(schedule);
}

@Override
Expand Down

0 comments on commit 19f8c33

Please sign in to comment.