diff --git a/li.strolch.rest/src/main/java/li/strolch/rest/filters/AuthenicationRequestFilter.java b/li.strolch.rest/src/main/java/li/strolch/rest/filters/AuthenicationRequestFilter.java index 86978c089..2edebbce6 100644 --- a/li.strolch.rest/src/main/java/li/strolch/rest/filters/AuthenicationRequestFilter.java +++ b/li.strolch.rest/src/main/java/li/strolch/rest/filters/AuthenicationRequestFilter.java @@ -18,7 +18,7 @@ package li.strolch.rest.filters; import static li.strolch.rest.StrolchRestfulConstants.STROLCH_CERTIFICATE; import java.io.IOException; -import java.util.Arrays; +import java.util.ArrayList; import java.util.List; import javax.ws.rs.container.ContainerRequestContext; @@ -48,7 +48,9 @@ public class AuthenicationRequestFilter implements ContainerRequestFilter { private static final Logger logger = LoggerFactory.getLogger(AuthenicationRequestFilter.class); protected List getUnsecuredPaths() { - return Arrays.asList("strolch/authentication"); + List list = new ArrayList<>(); + list.add("strolch/authentication"); + return list; } @Override diff --git a/li.strolch.rest/src/main/java/li/strolch/rest/helper/ResponseUtil.java b/li.strolch.rest/src/main/java/li/strolch/rest/helper/ResponseUtil.java new file mode 100644 index 000000000..36b5a764a --- /dev/null +++ b/li.strolch.rest/src/main/java/li/strolch/rest/helper/ResponseUtil.java @@ -0,0 +1,56 @@ +package li.strolch.rest.helper; + +import javax.ws.rs.core.MediaType; +import javax.ws.rs.core.Response; + +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; + +import li.strolch.utils.helper.ExceptionHelper; +import li.strolch.utils.helper.StringHelper; + +/** + * Created by eitch on 29.08.16. + */ +public class ResponseUtil { + + public static final String MSG = "msg"; + + public static Response toResponse() { + JsonObject response = new JsonObject(); + response.addProperty(MSG, StringHelper.DASH); + + String json = new Gson().toJson(response); + + return Response.ok(json, MediaType.APPLICATION_JSON).build(); + } + + public static Response toResponse(String prop, String value) { + JsonObject response = new JsonObject(); + response.addProperty(MSG, StringHelper.DASH); + response.addProperty(prop, value); + + String json = new Gson().toJson(response); + + return Response.ok(json, MediaType.APPLICATION_JSON).build(); + } + + public static Response toResponse(String member, JsonElement jsonElement) { + JsonObject response = new JsonObject(); + response.addProperty(MSG, StringHelper.DASH); + response.add(member, jsonElement); + + String json = new Gson().toJson(response); + + return Response.ok(json, MediaType.APPLICATION_JSON).build(); + } + + public static Response toResponse(Throwable t) { + JsonObject response = new JsonObject(); + response.addProperty(MSG, ExceptionHelper.getExceptionMessageWithCauses(t)); + String json = new Gson().toJson(response); + + return Response.serverError().entity(json).type(MediaType.APPLICATION_JSON).build(); + } +} diff --git a/li.strolch.rest/src/main/java/li/strolch/rest/visitor/ActivityToFlatJsonVisitor.java b/li.strolch.rest/src/main/java/li/strolch/rest/visitor/ActivityToFlatJsonVisitor.java index 4c78ce2ed..94bda447a 100644 --- a/li.strolch.rest/src/main/java/li/strolch/rest/visitor/ActivityToFlatJsonVisitor.java +++ b/li.strolch.rest/src/main/java/li/strolch/rest/visitor/ActivityToFlatJsonVisitor.java @@ -5,7 +5,7 @@ import com.google.gson.JsonObject; import li.strolch.model.activity.Activity; import li.strolch.model.visitor.ActivityVisitor; -public class ActivityToFlatJsonVisitor extends ToFlatJsonVisitor implements ActivityVisitor { +public class ActivityToFlatJsonVisitor extends ToFlatJsonVisitor implements ActivityVisitor { @Override public JsonObject visit(Activity element) { diff --git a/li.strolch.rest/src/main/java/li/strolch/rest/visitor/OrderToFlatJsonVisitor.java b/li.strolch.rest/src/main/java/li/strolch/rest/visitor/OrderToFlatJsonVisitor.java index e9784ec3a..1f70071eb 100644 --- a/li.strolch.rest/src/main/java/li/strolch/rest/visitor/OrderToFlatJsonVisitor.java +++ b/li.strolch.rest/src/main/java/li/strolch/rest/visitor/OrderToFlatJsonVisitor.java @@ -5,7 +5,7 @@ import com.google.gson.JsonObject; import li.strolch.model.Order; import li.strolch.model.visitor.OrderVisitor; -public class OrderToFlatJsonVisitor extends ToFlatJsonVisitor implements OrderVisitor { +public class OrderToFlatJsonVisitor extends ToFlatJsonVisitor implements OrderVisitor { @Override public JsonObject visit(Order element) { diff --git a/li.strolch.rest/src/main/java/li/strolch/rest/visitor/ResourceToFlatJsonVisitor.java b/li.strolch.rest/src/main/java/li/strolch/rest/visitor/ResourceToFlatJsonVisitor.java index adcdb63e3..130617e34 100644 --- a/li.strolch.rest/src/main/java/li/strolch/rest/visitor/ResourceToFlatJsonVisitor.java +++ b/li.strolch.rest/src/main/java/li/strolch/rest/visitor/ResourceToFlatJsonVisitor.java @@ -5,7 +5,7 @@ import com.google.gson.JsonObject; import li.strolch.model.Resource; import li.strolch.model.visitor.ResourceVisitor; -public class ResourceToFlatJsonVisitor extends ToFlatJsonVisitor implements ResourceVisitor { +public class ResourceToFlatJsonVisitor extends ToFlatJsonVisitor implements ResourceVisitor { @Override public JsonObject visit(Resource element) { diff --git a/li.strolch.rest/src/main/java/li/strolch/rest/visitor/ToFlatJsonVisitor.java b/li.strolch.rest/src/main/java/li/strolch/rest/visitor/ToFlatJsonVisitor.java index 3b9cc0e92..9cac20e3b 100644 --- a/li.strolch.rest/src/main/java/li/strolch/rest/visitor/ToFlatJsonVisitor.java +++ b/li.strolch.rest/src/main/java/li/strolch/rest/visitor/ToFlatJsonVisitor.java @@ -1,7 +1,13 @@ package li.strolch.rest.visitor; +import static li.strolch.model.Tags.ID; +import static li.strolch.model.Tags.NAME; +import static li.strolch.model.Tags.OBJECT_TYPE; +import static li.strolch.model.Tags.TYPE; + import java.util.Collections; import java.util.Set; +import java.util.function.BiConsumer; import com.google.gson.JsonObject; @@ -25,9 +31,10 @@ import li.strolch.utils.collections.MapOfSets; * * @author Robert von Burg */ -public class ToFlatJsonVisitor { +public class ToFlatJsonVisitor { private MapOfSets ignoredKeys; + private BiConsumer hook; public ToFlatJsonVisitor() { this.ignoredKeys = new MapOfSets<>(); @@ -37,6 +44,10 @@ public class ToFlatJsonVisitor { this.ignoredKeys = new MapOfSets<>(); } + public void setHook(BiConsumer hook) { + this.hook = hook; + } + public void ignoreBag(String bagId) { this.ignoredKeys.addSet(bagId, Collections.emptySet()); } @@ -45,10 +56,15 @@ public class ToFlatJsonVisitor { this.ignoredKeys.addElement(bagId, paramId); } - public JsonObject toJson(StrolchRootElement element) { + public JsonObject toJson(T element) { JsonObject jsonObject = new JsonObject(); + jsonObject.addProperty(ID, element.getId()); + jsonObject.addProperty(NAME, element.getName()); + jsonObject.addProperty(TYPE, element.getType()); + jsonObject.addProperty(OBJECT_TYPE, element.getClass().getSimpleName()); + Set bagKeySet = element.getParameterBagKeySet(); for (String bagId : bagKeySet) { @@ -83,6 +99,9 @@ public class ToFlatJsonVisitor { } } + if (hook != null) + this.hook.accept(element, jsonObject); + return jsonObject; } }