handling for nullable abbreviation

Signed-off-by: Peter Siegmund <developer@mars3142.org>
This commit is contained in:
2024-08-27 22:26:43 +02:00
parent a4a6f38741
commit 938094901d

View File

@@ -1,8 +1,10 @@
package dev.mars3142.fhq.timezone_service.timezone.web.controllers;
import dev.mars3142.fhq.timezone_service.timezone.domain.entities.response.TimeApiTimezoneZoneResponse;
import dev.mars3142.fhq.timezone_service.timezone.domain.model.response.LocationResponse;
import dev.mars3142.fhq.timezone_service.timezone.domain.model.response.TimeZoneResponse;
import dev.mars3142.fhq.timezone_service.timezone.service.TimeZoneService;
import java.util.Objects;
import lombok.RequiredArgsConstructor;
import lombok.val;
import org.springframework.web.bind.annotation.GetMapping;
@@ -19,8 +21,8 @@ public class TimeZoneController {
private final TimeZoneService timeZoneService;
@GetMapping
public TimeZoneResponse getTimeZone(@RequestHeader(value = "X-Forwarded-For", defaultValue = "127.0.0.1") String data) {
val clientIp = data.split(",")[0];
public TimeZoneResponse getTimeZone(@RequestHeader(value = "X-Forwarded-For", defaultValue = "127.0.0.1") String header) {
val clientIp = header.split(",")[0];
val ip = timeZoneService.getExternalIp(clientIp);
val timezoneInfo = timeZoneService.getTimeZoneInfoByIp(ip);
val posix = timeZoneService.getPosixTimeZone(timezoneInfo.timezone());
@@ -37,7 +39,8 @@ public class TimeZoneController {
public TimeZoneResponse getTimeZone(@PathVariable String area, @PathVariable String location) {
val timezone = area + "/" + location;
val timezoneInfo = timeZoneService.getTimeZoneInfo(timezone);
val abbreviation = Objects.requireNonNullElse(timezoneInfo.dstInterval(), new TimeApiTimezoneZoneResponse.Interval(null)).dstName();
val posix = timeZoneService.getPosixTimeZone(timezone);
return new TimeZoneResponse(timezone, timezoneInfo.dstInterval().dstName(), posix);
return new TimeZoneResponse(timezone, abbreviation, posix);
}
}