Skip to content

Commit 2251400

Browse files
authored
refactore/KD-50 Schedule title 필드 제거 및 일정 수정 API 수정 (#292)
* refactore/KD-50 : Schedule title 필드 제거 및 일정 수정 API 수정 * refactore/KD-50 : 코드래빗 리뷰 반영
1 parent 0228d1e commit 2251400

File tree

16 files changed

+22
-132
lines changed

16 files changed

+22
-132
lines changed

aics-admin/src/main/java/kgu/developers/admin/schedule/application/ScheduleAdminFacade.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@ public class ScheduleAdminFacade {
2222
public SchedulePersistResponse createSchedule(ScheduleCreateRequest request) {
2323
Long id = scheduleCommandService.createSchedule(
2424
request.submissionType(),
25-
request.title(),
2625
request.content(),
2726
request.startDate(),
2827
request.endDate()
@@ -34,8 +33,6 @@ public void updateSchedule(Long scheduleId, ScheduleUpdateRequest request) {
3433
Schedule schedule = scheduleQueryService.getScheduleManagement(scheduleId);
3534
scheduleCommandService.updateSchedule(
3635
schedule,
37-
request.submissionType(),
38-
request.title(),
3936
request.startDate(),
4037
request.endDate()
4138
);

aics-admin/src/main/java/kgu/developers/admin/schedule/presentation/ScheduleAdminController.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ ResponseEntity<SchedulePersistResponse> createSchedule(
4343
@ApiResponse(responseCode = "204")
4444
ResponseEntity<Void> updateSchedule(
4545
@Parameter(
46-
description = "이 API는 제출 유형/제목/기간을 수정합니다.",
46+
description = "이 API는 일정 별 기간을 수정합니다.",
4747
example = "1",
4848
required = true
4949
)@Positive @PathVariable Long scheduleId,

aics-admin/src/main/java/kgu/developers/admin/schedule/presentation/request/ScheduleCreateRequest.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,6 @@ public record ScheduleCreateRequest(
1111
@Schema(description = "제출 유형", example = "SUBMITTED", requiredMode = REQUIRED)
1212
@NotNull SubmissionType submissionType,
1313

14-
@Schema(description = "일정 제목", example = "중간논문 제출 안내",requiredMode = REQUIRED)
15-
@NotBlank @Size(max=100,message = "일정 제목은 100자 이내여야 합니다.") String title,
16-
1714
@Schema(description = "일정 내용", example = "매학기 개강 후 2주 이내에 신청서를 작성하여 접수해야합니다.",requiredMode = REQUIRED)
1815
@NotBlank String content,
1916

aics-admin/src/main/java/kgu/developers/admin/schedule/presentation/request/ScheduleUpdateRequest.java

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,6 @@
1010
import static io.swagger.v3.oas.annotations.media.Schema.RequiredMode.REQUIRED;
1111
@Builder
1212
public record ScheduleUpdateRequest(
13-
@Schema(description = "제출 유형", example = "SUBMITTED", requiredMode = REQUIRED)
14-
@NotNull
15-
SubmissionType submissionType,
16-
17-
@Schema(description = "일정 제목", example = "중간논문 제출 안내",requiredMode = REQUIRED)
18-
@NotBlank @Size(max=100,message = "일정 제목은 100자 이내여야 합니다.")
19-
String title,
2013

2114

2215
@Schema(description = "시작 일시", example = "2025-04-15T00:00:00", requiredMode = REQUIRED)

aics-admin/src/testFixtures/java/schedule/application/ScheduleAdminFacadeTest.java

Lines changed: 0 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,6 @@ public void init() {
4646
Schedule savedSchedule = fakeScheduleRepository.save(
4747
Schedule.create(
4848
SUBMITTED,
49-
"신청 접수",
5049
"본문",
5150
DEFAULT_START_DATE,
5251
DEFAULT_END_DATE
@@ -61,7 +60,6 @@ void createSchedule_Success() {
6160
// given
6261
ScheduleCreateRequest request = ScheduleCreateRequest.builder()
6362
.submissionType(MIDTHESIS)
64-
.title("중간 논문 일정")
6563
.content("중간 논문 본문")
6664
.startDate(DEFAULT_START_DATE.plusMonths(1))
6765
.endDate(DEFAULT_END_DATE.plusMonths(1))
@@ -81,7 +79,6 @@ void createSchedule_DuplicatedSubmissionType_ThrowsException() {
8179
// given
8280
ScheduleCreateRequest request = ScheduleCreateRequest.builder()
8381
.submissionType(SUBMITTED)
84-
.title("중복 일정")
8582
.content("본문")
8683
.startDate(DEFAULT_START_DATE)
8784
.endDate(DEFAULT_END_DATE)
@@ -97,8 +94,6 @@ void createSchedule_DuplicatedSubmissionType_ThrowsException() {
9794
void updateSchedule_Success() {
9895
// given
9996
ScheduleUpdateRequest request = ScheduleUpdateRequest.builder()
100-
.submissionType(CERTIFICATE)
101-
.title("수정 일정")
10297
.startDate(DEFAULT_START_DATE.plusDays(3))
10398
.endDate(DEFAULT_END_DATE.plusDays(5))
10499
.build();
@@ -108,45 +103,15 @@ void updateSchedule_Success() {
108103

109104
// then
110105
Schedule updated = fakeScheduleRepository.findById(savedScheduleId).orElseThrow();
111-
assertEquals(CERTIFICATE, updated.getSubmissionType());
112-
assertEquals("수정 일정", updated.getTitle());
113106
assertEquals(DEFAULT_START_DATE.plusDays(3), updated.getStartDate());
114107
assertEquals(DEFAULT_END_DATE.plusDays(5), updated.getEndDate());
115108
}
116109

117-
@Test
118-
@DisplayName("다른 일정의 제출 유형으로 수정 시 DuplicateScheduleTypeException을 발생시킨다")
119-
void updateSchedule_DuplicatedSubmissionType_ThrowsException() {
120-
// given
121-
fakeScheduleRepository.save(
122-
Schedule.create(
123-
MIDTHESIS,
124-
"다른 일정",
125-
"본문",
126-
DEFAULT_START_DATE.plusMonths(2),
127-
DEFAULT_END_DATE.plusMonths(2)
128-
)
129-
);
130-
131-
ScheduleUpdateRequest request = ScheduleUpdateRequest.builder()
132-
.submissionType(MIDTHESIS)
133-
.title("중복 수정")
134-
.startDate(DEFAULT_START_DATE)
135-
.endDate(DEFAULT_END_DATE)
136-
.build();
137-
138-
// when & then
139-
assertThatThrownBy(() -> scheduleAdminFacade.updateSchedule(savedScheduleId, request))
140-
.isInstanceOf(DuplicateScheduleTypeException.class);
141-
}
142-
143110
@Test
144111
@DisplayName("존재하지 않는 id로 일정 수정 시 ScheduleNotFoundException을 발생시킨다")
145112
void updateSchedule_NotFound_ThrowsException() {
146113
// given
147114
ScheduleUpdateRequest request = ScheduleUpdateRequest.builder()
148-
.submissionType(SUBMITTED)
149-
.title("수정 실패")
150115
.startDate(DEFAULT_START_DATE)
151116
.endDate(DEFAULT_END_DATE)
152117
.build();

aics-api/src/main/java/kgu/developers/api/schedule/presentation/response/ScheduleListResponse.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ public record ScheduleListResponse(
1616
[{
1717
"id": 1,
1818
"submissionType": "MIDTHESIS",
19-
"title": "중간논문 제출 안내",
2019
"startDate": "2025-05-01",
2120
"endDate": "2025-12-31",
2221
"status": "IN_PROGRESS"

aics-api/src/main/java/kgu/developers/api/schedule/presentation/response/ScheduleSummaryResponse.java

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,6 @@ public record ScheduleSummaryResponse(
1818
@Schema(description = "제출 유형", example = "MIDTHESIS", requiredMode = REQUIRED)
1919
String submissionType,
2020

21-
@Schema(description = "일정 제목", example = "중간논문 제출 안내", requiredMode = REQUIRED)
22-
String title,
23-
2421
@Schema(description = "시작일", example = "2025-05-01", requiredMode = REQUIRED)
2522
@DateTimeFormat(pattern = "yyyy-MM-dd")
2623
String startDate,
@@ -38,7 +35,6 @@ public static ScheduleSummaryResponse from(Schedule schedule, LocalDateTime refe
3835
return ScheduleSummaryResponse.builder()
3936
.id(schedule.getId())
4037
.submissionType(schedule.getSubmissionType().name())
41-
.title(schedule.getTitle())
4238
.startDate(schedule.getStartDate().format(DATE_FORMATTER))
4339
.endDate(schedule.getEndDate().format(DATE_FORMATTER))
4440
.status(schedule.determineStatusAt(referenceTime).name())

aics-api/src/main/resources/db/data.sql

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -142,16 +142,16 @@ VALUES
142142
('최동욱', 'dongwook@kyonggi.ac.kr', '이교수', '자격증', '2027-08-31', NULL, NULL, 2, '202512348', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP);
143143

144144
-- schedule
145-
INSERT INTO schedule (submission_type, title, content, start_date, end_date, created_at, updated_at)
146-
VALUES ('SUBMITTED', '신청 접수', '학부생 졸업 논문 신청을 접수합니다.', '2025-02-24 09:00:00', '2025-03-10 18:00:00',
145+
INSERT INTO schedule (submission_type, content, start_date, end_date, created_at, updated_at)
146+
VALUES ('SUBMITTED', '학부생 졸업 논문 신청을 접수합니다.', '2025-02-24 09:00:00', '2025-03-10 18:00:00',
147147
CURRENT_TIMESTAMP, CURRENT_TIMESTAMP),
148-
('MIDTHESIS', '중간 보고서', '중간 논문 제출 및 심사 기간입니다.', '2025-04-01 09:00:00', '2025-04-12 18:00:00',
148+
('MIDTHESIS', '중간 논문 제출 및 심사 기간입니다.', '2025-04-01 09:00:00', '2025-04-12 18:00:00',
149149
CURRENT_TIMESTAMP, CURRENT_TIMESTAMP),
150-
('FINALTHESIS', '최종 보고서', '최종 논문 제출 및 심사 기간입니다.', '2025-05-20 09:00:00', '2025-06-05 18:00:00',
150+
('FINALTHESIS', '최종 논문 제출 및 심사 기간입니다.', '2025-05-20 09:00:00', '2025-06-05 18:00:00',
151151
CURRENT_TIMESTAMP, CURRENT_TIMESTAMP),
152-
('CERTIFICATE', '제안서', '취득한 자격증 제출 및 심사 기간입니다.', '2025-03-15 09:00:00', '2025-03-29 18:00:00',
152+
('CERTIFICATE', '취득한 자격증 제출 및 심사 기간입니다.', '2025-03-15 09:00:00', '2025-03-29 18:00:00',
153153
CURRENT_TIMESTAMP, CURRENT_TIMESTAMP),
154-
('APPROVED', '최종 통과', '최종 승인 기간입니다.', '2025-06-10 09:00:00', '2025-06-14 18:00:00',
154+
('APPROVED', '최종 승인 기간입니다.', '2025-06-10 09:00:00', '2025-06-14 18:00:00',
155155
CURRENT_TIMESTAMP, CURRENT_TIMESTAMP),
156-
('OTHER', '기타 일정 안내', '기타 일정 입니다.', '2025-03-01 09:00:00', '2025-12-31 18:00:00',
156+
('OTHER', '기타 일정 입니다.', '2025-03-01 09:00:00', '2025-12-31 18:00:00',
157157
CURRENT_TIMESTAMP, CURRENT_TIMESTAMP);

aics-api/src/main/resources/db/schema.sql

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -173,7 +173,6 @@ CREATE TABLE schedule
173173
CONSTRAINT schedule_submission_type_check
174174
CHECK ((submission_type)::TEXT = ANY
175175
(ARRAY ['SUBMITTED', 'MIDTHESIS', 'FINALTHESIS', 'CERTIFICATE', 'APPROVED', 'OTHER'])),
176-
title VARCHAR(100) NOT NULL,
177176
content TEXT NOT NULL,
178177
start_date TIMESTAMP(6) NOT NULL,
179178
end_date TIMESTAMP(6) NOT NULL,

aics-domain/src/main/java/kgu/developers/domain/schedule/application/command/ScheduleCommandService.java

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -17,24 +17,16 @@
1717
public class ScheduleCommandService {
1818
private final ScheduleRepository scheduleRepository;
1919

20-
public Long createSchedule(SubmissionType submissionType, String title, String content , LocalDateTime startDate, LocalDateTime endDate) {
20+
public Long createSchedule(SubmissionType submissionType,String content , LocalDateTime startDate, LocalDateTime endDate) {
2121
scheduleRepository.findBySubmissionType(submissionType).ifPresent(existing -> {
2222
throw new DuplicateScheduleTypeException();
2323
});
24-
Schedule schedule = Schedule.create(submissionType,title,content,startDate,endDate);
24+
Schedule schedule = Schedule.create(submissionType,content,startDate,endDate);
2525

2626
return scheduleRepository.save(schedule).getId();
2727
}
2828
@Transactional
29-
public void updateSchedule(Schedule schedule, SubmissionType submissionType , String title, LocalDateTime startDate, LocalDateTime endDate) {
30-
if(!schedule.getSubmissionType().equals(submissionType)) {
31-
scheduleRepository.findBySubmissionType(submissionType)
32-
.filter(other -> !other.getId().equals(schedule.getId()))
33-
.ifPresent(existing -> {
34-
throw new DuplicateScheduleTypeException();});
35-
}
36-
schedule.updateSubmissionType(submissionType);
37-
schedule.updateTitle(title);
29+
public void updateSchedule(Schedule schedule, LocalDateTime startDate, LocalDateTime endDate) {
3830
schedule.updateStartDate(startDate);
3931
schedule.updateEndDate(endDate);
4032

0 commit comments

Comments
 (0)