From fd2d9873e1d12dbe7ce8c819bbf054125fa8cd4c Mon Sep 17 00:00:00 2001 From: Peter Siegmund Date: Mon, 28 Oct 2024 16:14:41 +0100 Subject: [PATCH] switching IP provider Signed-off-by: Peter Siegmund --- .../timezone/controllers/TimezoneController.java | 4 ++-- .../domain/entities/response/IPApiResponse.java | 8 ++++++++ .../entities/response/WorldTimeApiIpResponse.java | 9 --------- .../domain/model/response/TimezoneResponse.java | 1 - .../timezone/service/TimezoneService.java | 4 ++-- .../timezone/service/impl/TimezoneServiceImpl.java | 12 ++++++++---- 6 files changed, 20 insertions(+), 18 deletions(-) create mode 100644 src/main/java/dev/mars3142/fhq/timezone_service/timezone/domain/entities/response/IPApiResponse.java delete mode 100644 src/main/java/dev/mars3142/fhq/timezone_service/timezone/domain/entities/response/WorldTimeApiIpResponse.java diff --git a/src/main/java/dev/mars3142/fhq/timezone_service/timezone/controllers/TimezoneController.java b/src/main/java/dev/mars3142/fhq/timezone_service/timezone/controllers/TimezoneController.java index 2e4b6ca..996c169 100644 --- a/src/main/java/dev/mars3142/fhq/timezone_service/timezone/controllers/TimezoneController.java +++ b/src/main/java/dev/mars3142/fhq/timezone_service/timezone/controllers/TimezoneController.java @@ -31,7 +31,7 @@ public class TimezoneController { val timezoneInfo = timeZoneService.getTimeZoneInfoByIp(ip); val posix = timeZoneService.getPosixTimeZone(timezoneInfo.timezone()); return new ResponseEntity<>( - TimezoneResponse.builder().timezone(timezoneInfo.timezone()).abbreviation(timezoneInfo.abbreviation()) + TimezoneResponse.builder().timezone(timezoneInfo.timezone()) .posix_tz(posix).build(), HttpStatus.OK); } @@ -49,7 +49,7 @@ public class TimezoneController { new TimeApiTimezoneZoneResponse.Interval(null)).dstName(); val posix = timeZoneService.getPosixTimeZone(timezone); return new ResponseEntity<>( - TimezoneResponse.builder().timezone(timezone).abbreviation(abbreviation).posix_tz(posix).build(), + TimezoneResponse.builder().timezone(timezone).posix_tz(posix).build(), HttpStatus.OK); } } diff --git a/src/main/java/dev/mars3142/fhq/timezone_service/timezone/domain/entities/response/IPApiResponse.java b/src/main/java/dev/mars3142/fhq/timezone_service/timezone/domain/entities/response/IPApiResponse.java new file mode 100644 index 0000000..1a23b68 --- /dev/null +++ b/src/main/java/dev/mars3142/fhq/timezone_service/timezone/domain/entities/response/IPApiResponse.java @@ -0,0 +1,8 @@ +package dev.mars3142.fhq.timezone_service.timezone.domain.entities.response; + +public record IPApiResponse(String status, String country, String countryCode, String region, String regionName, + String city, String zip, String lat, String lon, String timezone, String isp, String or, + String as, String query +) { + +} diff --git a/src/main/java/dev/mars3142/fhq/timezone_service/timezone/domain/entities/response/WorldTimeApiIpResponse.java b/src/main/java/dev/mars3142/fhq/timezone_service/timezone/domain/entities/response/WorldTimeApiIpResponse.java deleted file mode 100644 index 3aad215..0000000 --- a/src/main/java/dev/mars3142/fhq/timezone_service/timezone/domain/entities/response/WorldTimeApiIpResponse.java +++ /dev/null @@ -1,9 +0,0 @@ -package dev.mars3142.fhq.timezone_service.timezone.domain.entities.response; - -public record WorldTimeApiIpResponse(String utc_offset, String timezone, int day_of_week, int day_of_year, - String datetime, - String utc_datetime, int unixtime, int raw_offset, int week_number, boolean dst, - String abbreviation, int dst_offset, String dst_from, String dst_until, - String client_ip) { - -} diff --git a/src/main/java/dev/mars3142/fhq/timezone_service/timezone/domain/model/response/TimezoneResponse.java b/src/main/java/dev/mars3142/fhq/timezone_service/timezone/domain/model/response/TimezoneResponse.java index 4c2318b..231e1b5 100644 --- a/src/main/java/dev/mars3142/fhq/timezone_service/timezone/domain/model/response/TimezoneResponse.java +++ b/src/main/java/dev/mars3142/fhq/timezone_service/timezone/domain/model/response/TimezoneResponse.java @@ -11,6 +11,5 @@ import org.springframework.hateoas.RepresentationModel; public class TimezoneResponse extends RepresentationModel { private final String timezone; - private final String abbreviation; private final String posix_tz; } diff --git a/src/main/java/dev/mars3142/fhq/timezone_service/timezone/service/TimezoneService.java b/src/main/java/dev/mars3142/fhq/timezone_service/timezone/service/TimezoneService.java index 7bcc8d7..6b0556b 100644 --- a/src/main/java/dev/mars3142/fhq/timezone_service/timezone/service/TimezoneService.java +++ b/src/main/java/dev/mars3142/fhq/timezone_service/timezone/service/TimezoneService.java @@ -1,14 +1,14 @@ package dev.mars3142.fhq.timezone_service.timezone.service; +import dev.mars3142.fhq.timezone_service.timezone.domain.entities.response.IPApiResponse; import dev.mars3142.fhq.timezone_service.timezone.domain.entities.response.TimeApiTimezoneZoneResponse; -import dev.mars3142.fhq.timezone_service.timezone.domain.entities.response.WorldTimeApiIpResponse; import java.util.List; public interface TimezoneService { String getExternalIp(String ip); - WorldTimeApiIpResponse getTimeZoneInfoByIp(String ip); + IPApiResponse getTimeZoneInfoByIp(String ip); TimeApiTimezoneZoneResponse getTimeZoneInfo(String timezone); diff --git a/src/main/java/dev/mars3142/fhq/timezone_service/timezone/service/impl/TimezoneServiceImpl.java b/src/main/java/dev/mars3142/fhq/timezone_service/timezone/service/impl/TimezoneServiceImpl.java index 043aca6..a1519c1 100644 --- a/src/main/java/dev/mars3142/fhq/timezone_service/timezone/service/impl/TimezoneServiceImpl.java +++ b/src/main/java/dev/mars3142/fhq/timezone_service/timezone/service/impl/TimezoneServiceImpl.java @@ -1,9 +1,9 @@ package dev.mars3142.fhq.timezone_service.timezone.service.impl; import dev.mars3142.fhq.timezone_service.exceptions.NotFoundException; +import dev.mars3142.fhq.timezone_service.timezone.domain.entities.response.IPApiResponse; import dev.mars3142.fhq.timezone_service.timezone.domain.entities.response.IpifyResponse; import dev.mars3142.fhq.timezone_service.timezone.domain.entities.response.TimeApiTimezoneZoneResponse; -import dev.mars3142.fhq.timezone_service.timezone.domain.entities.response.WorldTimeApiIpResponse; import dev.mars3142.fhq.timezone_service.timezone.service.TimezoneService; import java.io.File; import java.io.IOException; @@ -47,15 +47,19 @@ public class TimezoneServiceImpl implements TimezoneService { @Override @Cacheable(value = "TZInfoByIp", key = "{#ip}") - public WorldTimeApiIpResponse getTimeZoneInfoByIp(String ip) { + public IPApiResponse getTimeZoneInfoByIp(String ip) { return restClient .get() - .uri("https://worldtimeapi.org/api/ip/" + ip) + .uri(builder -> builder + .scheme("http") + .host("ip-api.com") + .path("json/" + ip) + .build()) .retrieve() .onStatus(HttpStatusCode::is4xxClientError, (request, response) -> { throw new NotFoundException(); }) - .body(WorldTimeApiIpResponse.class); + .body(IPApiResponse.class); } @Override