Skip to content
Snippets Groups Projects
Commit 1be3c981 authored by Andreas Schärtl's avatar Andreas Schärtl
Browse files

uloapi: fix error handling

parent 5bb1ca2a
No related branches found
No related tags found
No related merge requests found
package info.mathhub.uloapi.rest;
import com.google.gson.Gson;
import org.eclipse.jetty.http.HttpStatus;
import spark.Request;
import spark.Response;
import spark.ResponseTransformer;
import spark.Route;
public class Errors {
private Errors() {};
private final static Gson gson = new Gson();
private static class JsonError {
final int status;
final String message;
JsonError(int status) {
this.status = status;
this.message = HttpStatus.getMessage(status);
}
}
public static final Route notFound = (Request request, Response response) -> {
return createError(HttpStatus.NOT_FOUND_404).handle(request, response);
};
public static final Route notAcceptable = (Request request, Response response) -> {
return createError(HttpStatus.NOT_ACCEPTABLE_406).handle(request, response);
};
public static final Route notImplemented = (Request request, Response response) -> {
return createError(HttpStatus.NOT_IMPLEMENTED_501).handle(request, response);
};
private static Route createError(int status) {
return (Request request, Response response) -> {
final JsonError obj = new JsonError(status);
return Errors.gson.toJson(obj);
};
}
}
......@@ -9,11 +9,15 @@ public class Main {
private Main() {};
public static void main(String[] args) {
// routes
get("/", Routes.index);
get("/statistics", Routes.statistics, new JsonTransformer());
get("/name/:name", Routes.name, new JsonTransformer());
notFound(Routes.notFound);
// error handling
notFound(Errors.notFound);
// run on all routes and errors
after(Filters.setJsonContentType);
}
}
......@@ -14,7 +14,7 @@ public class Routes {
private Routes() {};
public static final Route index = (Request request, Response response) -> {
return "{}";
return Errors.notImplemented.handle(request, response);
};
public static final Route statistics = (Request request, Response response) -> {
......@@ -30,19 +30,4 @@ public class Routes {
return json;
};
public static final Route notFound = (Request request, Response response) -> {
return createError(HttpStatus.NOT_FOUND_404);
};
public static final Route notAcceptable = (Request request, Response response) -> {
return createError(HttpStatus.NOT_ACCEPTABLE_406);
};
private static Route createError(int status) {
return (Request request, Response response) -> {
response.status(status);
return String.format("Error %d", status);
};
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment