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:
2024-12-31 00:02:14 +01:00
parent 10ad309d8c
commit 4822320961
28 changed files with 874 additions and 542 deletions
@@ -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);
}
}
}