diff --git a/src/main/java/com/codingwasabi/howtodo/web/calendar/CalendarController.java b/src/main/java/com/codingwasabi/howtodo/web/calendar/CalendarController.java index 05e8a9b..48c5669 100644 --- a/src/main/java/com/codingwasabi/howtodo/web/calendar/CalendarController.java +++ b/src/main/java/com/codingwasabi/howtodo/web/calendar/CalendarController.java @@ -22,6 +22,7 @@ import com.codingwasabi.howtodo.web.calendar.dto.CreateCalendarRequest; import com.codingwasabi.howtodo.web.calendar.entity.Calendar; import com.codingwasabi.howtodo.web.calendar.service.CalendarService; +import com.codingwasabi.howtodo.web.exam.ExamService; import com.codingwasabi.howtodo.web.exam.entity.Exam; import com.codingwasabi.howtodo.web.policy.tendency.TendencyPolicy; @@ -33,6 +34,7 @@ public class CalendarController { private final CalendarService calendarService; private final AccountService accountService; + private final ExamService examService; private final TendencyPolicy tendencyPolicy; @PostMapping(value = "/calendar", consumes = APPLICATION_JSON_VALUE, produces = APPLICATION_JSON_VALUE) @@ -40,6 +42,7 @@ public ResponseEntity createCalendar(@LoginAccount Account acc @RequestBody CreateCalendarRequest createCalendarRequest) { List exams = extractExams(account, createCalendarRequest); + examService.insertColor(exams); int tendency = tendencyPolicy.setUp(createCalendarRequest.getAnswers(), createCalendarRequest.getDailyQuota(), diff --git a/src/main/java/com/codingwasabi/howtodo/web/exam/ExamController.java b/src/main/java/com/codingwasabi/howtodo/web/exam/ExamController.java index bd3e001..75b83cd 100644 --- a/src/main/java/com/codingwasabi/howtodo/web/exam/ExamController.java +++ b/src/main/java/com/codingwasabi/howtodo/web/exam/ExamController.java @@ -24,7 +24,6 @@ @RestController @RequiredArgsConstructor public class ExamController { - private final ExamService examService; @GetMapping("/my/exams") @@ -39,20 +38,16 @@ public GetMyExamResponse getMyExam(@LoginAccount Account account) { @PutMapping("/my/exams") public void putMyExam(@LoginAccount Account account, @RequestBody PutMyExamRequest putMyExamRequest) { List exams = new ArrayList<>(); - int index = 0; for (PutMyExamRequest.ExamRequest subjectRequest : putMyExamRequest.getSubjects()) { exams.add(Exam.builder() .account(account) .name(subjectRequest.getName()) .dueDateTime(subjectRequest.getDate()) .studyDegree(subjectRequest.getPrepareTime()) - .color(++index) .build()); } - + examService.insertColor(exams); examService.putExam(account, exams); - - return; } } diff --git a/src/main/java/com/codingwasabi/howtodo/web/exam/ExamService.java b/src/main/java/com/codingwasabi/howtodo/web/exam/ExamService.java index f86f50e..9e86283 100644 --- a/src/main/java/com/codingwasabi/howtodo/web/exam/ExamService.java +++ b/src/main/java/com/codingwasabi/howtodo/web/exam/ExamService.java @@ -14,15 +14,22 @@ @Service @RequiredArgsConstructor public class ExamService { - + private final ExamRepository examRepository; - + public List getMyExam(Account account) { return examRepository.findByAccount(account); } - + public void putExam(Account account, List exam) { examRepository.deleteAll(examRepository.findByAccount(account)); examRepository.saveAll(exam); } + + public void insertColor(List exams) { + int color = 0; + for (Exam exam : exams) { + exam.setColor(color++); + } + } } diff --git a/src/main/java/com/codingwasabi/howtodo/web/exam/entity/Exam.java b/src/main/java/com/codingwasabi/howtodo/web/exam/entity/Exam.java index 232b33f..fc0caa4 100644 --- a/src/main/java/com/codingwasabi/howtodo/web/exam/entity/Exam.java +++ b/src/main/java/com/codingwasabi/howtodo/web/exam/entity/Exam.java @@ -15,6 +15,7 @@ import lombok.Builder; import lombok.Getter; import lombok.NoArgsConstructor; +import lombok.Setter; @Entity @Getter @@ -30,15 +31,16 @@ public class Exam { private String name; private LocalDateTime dueDateTime; private int studyDegree; + + @Setter private int color; @Builder - private Exam(Account account, String name, LocalDateTime dueDateTime, int studyDegree, int color) { + private Exam(Account account, String name, LocalDateTime dueDateTime, int studyDegree) { this.account = account; this.name = name; this.dueDateTime = dueDateTime; this.studyDegree = studyDegree; - this.color = color; } public int getDDay(LocalDate today) { diff --git a/src/test/java/com/codingwasabi/howtodo/unit/domain/exam/ExamTest.java b/src/test/java/com/codingwasabi/howtodo/unit/domain/exam/ExamTest.java index 55e94be..72cabc2 100644 --- a/src/test/java/com/codingwasabi/howtodo/unit/domain/exam/ExamTest.java +++ b/src/test/java/com/codingwasabi/howtodo/unit/domain/exam/ExamTest.java @@ -32,13 +32,11 @@ void init() { .account(account) .dueDateTime(LocalDateTime.now()) .studyDegree(3) - .color(3) .build(); // then assertThat(exam.getName()).isEqualTo("과목"); assertThat(exam.getStudyDegree()).isEqualTo(3); - assertThat(exam.getColor()).isEqualTo(3); } @DisplayName("과목 d-day 구하기") diff --git a/src/test/java/com/codingwasabi/howtodo/unit/service/calender/CalendarServiceTest.java b/src/test/java/com/codingwasabi/howtodo/unit/service/calender/CalendarServiceTest.java index 8b6b349..2473520 100644 --- a/src/test/java/com/codingwasabi/howtodo/unit/service/calender/CalendarServiceTest.java +++ b/src/test/java/com/codingwasabi/howtodo/unit/service/calender/CalendarServiceTest.java @@ -38,7 +38,8 @@ void init() { Account account = Account.Anonymous; List dailyPlans = List.of(DailyPlan_생성(account), DailyPlan_생성(account)); willReturn(dailyPlans).given(planMakingPolicy) - .makeDailyPlans(any(), any(), any(), any()); + .makeDailyPlans(any(), any(), any(), any(Integer.class)); + // when Calendar calendar = calendarService.create(account, 3, "daehwan", 10, List.of(Exam_생성("물리", 2022, 4, 9))); // then @@ -54,7 +55,7 @@ void init() { Account account = Account_생성(); List dailyPlans = List.of(DailyPlan_생성(account), DailyPlan_생성(account)); willReturn(dailyPlans).given(planMakingPolicy) - .makeDailyPlans(any(), any(), any(), any()); + .makeDailyPlans(any(), any(), any(), any(Integer.class)); // when Calendar calendar = calendarService.create(account, 3, "daehwan", 10, List.of(Exam_생성("물리", 2022, 4, 9)));