Skip to content

Commit b34819b

Browse files
authored
Merge pull request #95 from Central-MakeUs/refactor/friend
fix: 특정 날짜 스케줄 인서트 api 추가
2 parents b94ab5c + 4f0da2d commit b34819b

File tree

3 files changed

+19
-0
lines changed

3 files changed

+19
-0
lines changed

yakssok/src/main/java/server/yakssok/domain/medication_schedule/application/service/MedicationScheduleService.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,4 +104,9 @@ public void createTodaySchedules(
104104
public void deleteAllByMedicationIds(List<Long> medicationIds) {
105105
medicationScheduleManager.deleteAllByMedicationIds(medicationIds);
106106
}
107+
108+
public void generateDateSchedules(LocalDate date) {
109+
List<MedicationSchedule> schedules = medicationScheduleGenerator.generateAllTodaySchedules(date.atStartOfDay());
110+
medicationScheduleJdbcRepository.batchInsert(schedules);
111+
}
107112
}

yakssok/src/main/java/server/yakssok/domain/medication_schedule/batch/job/MedicationScheduleJob.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package server.yakssok.domain.medication_schedule.batch.job;
22

3+
import java.time.LocalDate;
4+
35
import org.springframework.stereotype.Component;
46

57
import lombok.RequiredArgsConstructor;
@@ -13,4 +15,8 @@ public class MedicationScheduleJob {
1315
public void runToday() {
1416
medicationScheduleService.generateTodaySchedules();
1517
}
18+
19+
public void runFor(LocalDate parse) {
20+
medicationScheduleService.generateDateSchedules(parse);
21+
}
1622
}

yakssok/src/main/java/server/yakssok/domain/medication_schedule/presentation/controller/MedicationScheduleController.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import org.springframework.security.core.annotation.AuthenticationPrincipal;
88
import org.springframework.web.bind.annotation.GetMapping;
99
import org.springframework.web.bind.annotation.PathVariable;
10+
import org.springframework.web.bind.annotation.PostMapping;
1011
import org.springframework.web.bind.annotation.PutMapping;
1112
import org.springframework.web.bind.annotation.RequestMapping;
1213
import org.springframework.web.bind.annotation.RequestParam;
@@ -17,6 +18,7 @@
1718
import io.swagger.v3.oas.annotations.tags.Tag;
1819
import lombok.RequiredArgsConstructor;
1920
import server.yakssok.domain.medication_schedule.application.service.MedicationScheduleService;
21+
import server.yakssok.domain.medication_schedule.batch.job.MedicationScheduleJob;
2022
import server.yakssok.domain.medication_schedule.presentation.dto.response.MedicationScheduleGroupResponse;
2123
import server.yakssok.global.common.reponse.ApiResponse;
2224
import server.yakssok.global.common.security.YakssokUserDetails;
@@ -30,6 +32,7 @@
3032
@Tag(name = "Medication Schedule", description = "복약 스케줄 API")
3133
public class MedicationScheduleController {
3234
private final MedicationScheduleService medicationScheduleService;
35+
private final MedicationScheduleJob job;
3336

3437
@Operation(summary = "나의 복약 스케줄 조회 (오늘)")
3538
@GetMapping("/today")
@@ -92,4 +95,9 @@ public ApiResponse<MedicationScheduleGroupResponse> findFriendRangeMedicationSch
9295
Long userId = userDetails.getUserId();
9396
return ApiResponse.success(medicationScheduleService.getFriendRangeSchedules(userId, friendId, startDate, endDate));
9497
}
98+
99+
@PostMapping("/backfill/{date}") // yyyy-MM-dd
100+
public void backfill(@PathVariable String date) {
101+
job.runFor(LocalDate.parse(date));
102+
}
95103
}

0 commit comments

Comments
 (0)