From 96ed426c01855ece18365f2cfc8404c666abdad3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=ED=97=88=EC=A4=80=EA=B8=B0?= <112807640+dradnats1012@users.noreply.github.com> Date: Sun, 21 Apr 2024 17:06:49 +0900 Subject: [PATCH] =?UTF-8?q?fix:=20=EC=8B=9C=EC=99=B8=EB=B2=84=EC=8A=A4=20?= =?UTF-8?q?=EC=8B=9C=EA=B0=84=ED=91=9C=20=EC=BA=90=EC=8B=9C=ED=99=95?= =?UTF-8?q?=EC=9D=B8=EB=A1=9C=EC=A7=81=20=EB=B3=80=EA=B2=BD=20(#457)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bus/util/ExpressBusOpenApiClient.java | 21 +++++++------------ 1 file changed, 7 insertions(+), 14 deletions(-) diff --git a/src/main/java/in/koreatech/koin/domain/bus/util/ExpressBusOpenApiClient.java b/src/main/java/in/koreatech/koin/domain/bus/util/ExpressBusOpenApiClient.java index 3eff66a764..c2082bf3c9 100644 --- a/src/main/java/in/koreatech/koin/domain/bus/util/ExpressBusOpenApiClient.java +++ b/src/main/java/in/koreatech/koin/domain/bus/util/ExpressBusOpenApiClient.java @@ -11,7 +11,6 @@ import java.net.HttpURLConnection; import java.net.URL; import java.time.Clock; -import java.time.Duration; import java.time.LocalDateTime; import java.time.LocalTime; import java.util.ArrayList; @@ -45,7 +44,6 @@ import in.koreatech.koin.domain.bus.model.express.ExpressBusTimetable; import in.koreatech.koin.domain.bus.model.express.OpenApiExpressBusArrival; import in.koreatech.koin.domain.bus.repository.ExpressBusCacheRepository; -import in.koreatech.koin.domain.version.model.Version; import in.koreatech.koin.domain.version.model.VersionType; import in.koreatech.koin.domain.version.repository.VersionRepository; @@ -101,7 +99,8 @@ public SingleBusTimeResponse searchBusTime( } public List getBusRemainTime(BusStation depart, BusStation arrival) { - String busCacheId = ExpressBusCache.generateId(new ExpressBusRoute(depart.name().toLowerCase(), arrival.name().toLowerCase())); + String busCacheId = ExpressBusCache.generateId( + new ExpressBusRoute(depart.name().toLowerCase(), arrival.name().toLowerCase())); if (!expressBusCacheRepository.existsById(busCacheId)) { storeRemainTimeByOpenApi(depart.name().toLowerCase(), arrival.name().toLowerCase()); } @@ -130,7 +129,7 @@ private void storeRemainTimeByOpenApi(String departName, String arrivalName) { .toList() ); - if(!expressBusCache.getBusInfos().isEmpty()) { + if (!expressBusCache.getBusInfos().isEmpty()) { expressBusCacheRepository.save(expressBusCache); } @@ -140,7 +139,7 @@ private void storeRemainTimeByOpenApi(String departName, String arrivalName) { private JsonObject getBusApiResponse(String departName, String arrivalName) { try { URL url = getBusApiURL(departName, arrivalName); - HttpURLConnection conn = (HttpURLConnection) url.openConnection(); + HttpURLConnection conn = (HttpURLConnection)url.openConnection(); conn.setRequestMethod("GET"); conn.setRequestProperty("Content-type", "application/json"); BufferedReader reader; @@ -221,14 +220,7 @@ private List getExpressBusRemainTime( .toList(); } - public boolean isCacheExpired(Version version, Clock clock) { - Duration duration = Duration.between(version.getUpdatedAt().toLocalTime(), LocalTime.now(clock)); - return duration.toSeconds() < 0 - || Duration.ofHours(ExpressBusCache.getCacheExpireHour()).toSeconds() <= duration.toSeconds(); - } - public List getExpressBusTimetable(String direction) { - Version version = versionRepository.getByType(VersionType.EXPRESS); String depart = ""; String arrival = ""; @@ -240,15 +232,16 @@ public List getExpressBusTimetable(String direction) { depart = "terminal"; arrival = "koreatech"; } + if (depart.isEmpty() || arrival.isEmpty()) { throw new UnsupportedOperationException(); } - if (isCacheExpired(version, clock)) { + String busCacheId = ExpressBusCache.generateId(new ExpressBusRoute(depart, arrival)); + if (!expressBusCacheRepository.existsById(busCacheId)) { storeRemainTimeByOpenApi(depart, arrival); } - String busCacheId = ExpressBusCache.generateId(new ExpressBusRoute(depart, arrival)); ExpressBusCache expressBusCache = expressBusCacheRepository.getById(busCacheId); if (Objects.isNull(expressBusCache)) { return Collections.emptyList();