switching IP provider
Signed-off-by: Peter Siegmund <developer@mars3142.org>
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
|
@@ -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
|
||||
) {
|
||||
|
||||
}
|
@@ -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) {
|
||||
|
||||
}
|
@@ -11,6 +11,5 @@ import org.springframework.hateoas.RepresentationModel;
|
||||
public class TimezoneResponse extends RepresentationModel<TimezoneResponse> {
|
||||
|
||||
private final String timezone;
|
||||
private final String abbreviation;
|
||||
private final String posix_tz;
|
||||
}
|
||||
|
@@ -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);
|
||||
|
||||
|
@@ -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
|
||||
|
Reference in New Issue
Block a user