diff --git a/src/main/java/in/koreatech/koin/admin/version/controller/AdminVersionApi.java b/src/main/java/in/koreatech/koin/admin/version/controller/AdminVersionApi.java index 551c4b2faa..e5d0daad0f 100644 --- a/src/main/java/in/koreatech/koin/admin/version/controller/AdminVersionApi.java +++ b/src/main/java/in/koreatech/koin/admin/version/controller/AdminVersionApi.java @@ -81,7 +81,7 @@ ResponseEntity getVersion( @PutMapping("/{type}") @AdminActivityLogging(domain = VERSION) ResponseEntity updateVersion( - @Parameter(description = "android, ios, android_owner") @PathVariable("type") String type, + @Parameter(description = "android, ios, android_owner, timetable, shuttle_bus_timetable, city_bus_timetable, express_bus_timetable") @PathVariable("type") String type, @RequestBody @Valid AdminVersionUpdateRequest adminVersionUpdateRequest, @Auth(permit = {ADMIN}) Integer adminId ); diff --git a/src/main/java/in/koreatech/koin/admin/version/service/AdminVersionService.java b/src/main/java/in/koreatech/koin/admin/version/service/AdminVersionService.java index 08d1440a71..2e7455fbd1 100644 --- a/src/main/java/in/koreatech/koin/admin/version/service/AdminVersionService.java +++ b/src/main/java/in/koreatech/koin/admin/version/service/AdminVersionService.java @@ -10,11 +10,10 @@ import in.koreatech.koin.admin.version.dto.AdminVersionResponse; import in.koreatech.koin.admin.version.dto.AdminVersionUpdateRequest; import in.koreatech.koin.admin.version.dto.AdminVersionsResponse; -import in.koreatech.koin.admin.version.exception.VersionNotSupportedException; import in.koreatech.koin.admin.version.repository.AdminVersionRepository; +import in.koreatech.koin.common.model.Criteria; import in.koreatech.koin.domain.version.model.Version; import in.koreatech.koin.domain.version.model.VersionType; -import in.koreatech.koin.common.model.Criteria; import lombok.RequiredArgsConstructor; @Service @@ -44,15 +43,19 @@ public AdminVersionResponse getVersion(String type) { @Transactional public void updateVersion(String type, AdminVersionUpdateRequest request) { VersionType versionType = VersionType.from(type); - if (!versionType.isPlatform()) { - throw VersionNotSupportedException.withDetail("type: " + versionType); - } - Version currentVersion = adminVersionRepository.getByTypeAndIsPrevious(versionType, false); - currentVersion.toPreviousVersion(); - - Version newVersion = Version.of(versionType, request); - adminVersionRepository.save(newVersion); + if (versionType.isPlatform()) { + currentVersion.toPreviousVersion(); + + Version newVersion = Version.of(versionType, request); + adminVersionRepository.save(newVersion); + } else { + currentVersion.update( + request.version(), + request.title(), + request.content() + ); + } } public AdminVersionHistoryResponse getHistory(String type, Integer page, Integer limit) { diff --git a/src/main/java/in/koreatech/koin/domain/version/model/Version.java b/src/main/java/in/koreatech/koin/domain/version/model/Version.java index 9b7e15b26d..6c9a0ea8d6 100644 --- a/src/main/java/in/koreatech/koin/domain/version/model/Version.java +++ b/src/main/java/in/koreatech/koin/domain/version/model/Version.java @@ -68,6 +68,12 @@ public void update(Clock clock) { version = generateVersionName(clock); } + public void update(String version, String title, String content) { + this.version = version; + this.title = title; + this.content = content; + } + private String generateVersionName(Clock clock) { String year = Integer.toString(LocalDate.now().getYear()); String padding = "0_";