overhauled API:
- wrote openapi schema - re-implemented api endpoint following openapi schema - intensified and improved working with Result objects Signed-off-by: Stephan Richter <s.richter@srsoftware.de>
This commit is contained in:
@@ -1,23 +1,24 @@
|
||||
/* © SRSoftware 2024 */
|
||||
package de.srsoftware.cal;
|
||||
|
||||
import static de.srsoftware.tools.Error.error;
|
||||
|
||||
import de.srsoftware.cal.api.Coords;
|
||||
import de.srsoftware.tools.Error;
|
||||
import de.srsoftware.tools.Payload;
|
||||
import de.srsoftware.tools.Result;
|
||||
|
||||
public class Util {
|
||||
public static Result<Coords> extractCoords(String coords) {
|
||||
if (coords == null) return de.srsoftware.tools.Error.of("Argument is null");
|
||||
if (coords.isBlank()) return de.srsoftware.tools.Error.of("Argument is blank");
|
||||
if (coords == null) return error("Argument is null");
|
||||
if (coords.isBlank()) return error("Argument is blank");
|
||||
var parts = coords.split(",");
|
||||
if (parts.length != 2) return de.srsoftware.tools.Error.format("Argument has invalid format: %s", coords);
|
||||
if (parts.length != 2) return error("Argument has invalid format: %s", coords);
|
||||
try {
|
||||
var lat = Double.parseDouble(parts[0].trim());
|
||||
var lon = Double.parseDouble(parts[1].trim());
|
||||
return Payload.of(new Coords(lon, lat));
|
||||
} catch (NumberFormatException nfe) {
|
||||
return Error.of("Failed to parse coords from %s".formatted(coords), nfe);
|
||||
return error(nfe, "Failed to parse coords from %s", coords);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user