[Lada-commits] [PATCH 4 of 6] Renamed OrtszuordnungService
Wald Commits
scm-commit at wald.intevation.org
Fri Jan 27 15:19:39 CET 2017
# HG changeset patch
# User Raimund Renkert <raimund.renkert at intevation.de>
# Date 1485526392 -3600
# Node ID a0a5111b2aa6b8c685aab5742462dc758ff24971
# Parent e36e42cbd1d8d4770b532d85e0f81b12d78ebc84
Renamed OrtszuordnungService.
diff -r e36e42cbd1d8 -r a0a5111b2aa6 src/main/java/de/intevation/lada/rest/OrtService.java
--- a/src/main/java/de/intevation/lada/rest/OrtService.java Fri Jan 27 15:11:50 2017 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,337 +0,0 @@
-/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz
- * Software engineering by Intevation GmbH
- *
- * This file is Free Software under the GNU GPL (v>=3)
- * and comes with ABSOLUTELY NO WARRANTY! Check out
- * the documentation coming with IMIS-Labordaten-Application for details.
- */
-package de.intevation.lada.rest;
-
-import javax.enterprise.context.RequestScoped;
-import javax.inject.Inject;
-import javax.servlet.http.HttpServletRequest;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.GET;
-import javax.ws.rs.POST;
-import javax.ws.rs.PUT;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.core.Context;
-import javax.ws.rs.core.HttpHeaders;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.MultivaluedMap;
-import javax.ws.rs.core.UriInfo;
-
-import org.apache.log4j.Logger;
-
-import de.intevation.lada.lock.LockConfig;
-import de.intevation.lada.lock.LockType;
-import de.intevation.lada.lock.ObjectLocker;
-import de.intevation.lada.model.land.Ortszuordnung;
-import de.intevation.lada.util.annotation.AuthorizationConfig;
-import de.intevation.lada.util.annotation.RepositoryConfig;
-import de.intevation.lada.util.auth.Authorization;
-import de.intevation.lada.util.auth.AuthorizationType;
-import de.intevation.lada.util.data.QueryBuilder;
-import de.intevation.lada.util.data.Repository;
-import de.intevation.lada.util.data.RepositoryType;
-import de.intevation.lada.util.rest.RequestMethod;
-import de.intevation.lada.util.rest.Response;
-import de.intevation.lada.validation.Validator;
-import de.intevation.lada.validation.Violation;
-import de.intevation.lada.validation.annotation.ValidationConfig;
-
-/**
- * REST service for Ort objects.
- * <p>
- * The services produce data in the application/json media type.
- * All HTTP methods use the authorization module to determine if the user is
- * allowed to perform the requested action.
- * A typical response holds information about the action performed and the data.
- * <pre>
- * <code>
- * {
- * "success": [boolean];
- * "message": [string],
- * "data":[{
- * "id": [number],
- * "letzteAenderung": [timestamp],
- * "ortsTyp": [string],
- * "ortszusatztext": [string],
- * "probeId": [number],
- * "ort": [number],
- * "owner": [boolean],
- * "readonly": [boolean],
- * "treeModified": [timestamp],
- * "parentModified": [timestamp]
- * }],
- * "errors": [object],
- * "warnings": [object],
- * "readonly": [boolean],
- * "totalCount": [number]
- * }
- * </code>
- * </pre>
- *
- * @author <a href="mailto:rrenkert at intevation.de">Raimund Renkert</a>
- */
- at Path("rest/ortszuordnung")
- at RequestScoped
-public class OrtService {
-
- /**
- * The logger used in this class.
- */
- @Inject
- private Logger logger;
-
- /**
- * The data repository granting read/write access.
- */
- @Inject
- @RepositoryConfig(type=RepositoryType.RW)
- private Repository defaultRepo;
-
- /**
- * The object lock mechanism.
- */
- @Inject
- @LockConfig(type=LockType.TIMESTAMP)
- private ObjectLocker lock;
-
- /**
- * The authorization module.
- */
- @Inject
- @AuthorizationConfig(type=AuthorizationType.HEADER)
- private Authorization authorization;
-
- @Inject
- @ValidationConfig(type="Ortszuordnung")
- private Validator validator;
-
- /**
- * Get all Ort objects.
- * <p>
- * The requested objects can be filtered using a URL parameter named
- * probeId.
- * <p>
- * Example: http://example.com/ort?probeId=[ID]
- *
- *
- * @return Response object containing all Ort objects.
- */
- @GET
- @Path("/")
- @Produces(MediaType.APPLICATION_JSON)
- public Response get(
- @Context HttpHeaders headers,
- @Context UriInfo info,
- @Context HttpServletRequest request
- ) {
- MultivaluedMap<String, String> params = info.getQueryParameters();
- if (params.isEmpty() || !params.containsKey("probeId")) {
- logger.debug("get all");
- return defaultRepo.getAll(Ortszuordnung.class, "land");
- }
- String probeId = params.getFirst("probeId");
- QueryBuilder<Ortszuordnung> builder =
- new QueryBuilder<Ortszuordnung>(
- defaultRepo.entityManager("land"),
- Ortszuordnung.class);
- builder.and("probeId", probeId);
- return authorization.filter(
- request,
- defaultRepo.filter(builder.getQuery(), "land"),
- Ortszuordnung.class);
- }
-
- /**
- * Get a Ort object by id.
- * <p>
- * The id is appended to the URL as a path parameter.
- * <p>
- * Example: http://example.com/ort/{id}
- *
- * @return Response object containing a single Ort.
- */
- @GET
- @Path("/{id}")
- @Produces(MediaType.APPLICATION_JSON)
- public Response getById(
- @Context HttpHeaders headers,
- @Context HttpServletRequest request,
- @PathParam("id") String id
- ) {
- Response response =
- defaultRepo.getById(Ortszuordnung.class, Integer.valueOf(id), "land");
- Ortszuordnung ort = (Ortszuordnung)response.getData();
- Violation violation = validator.validate(ort);
- if (violation.hasErrors() || violation.hasWarnings()) {
- response.setErrors(violation.getErrors());
- response.setWarnings(violation.getWarnings());
- }
- return authorization.filter(
- request,
- response,
- Ortszuordnung.class);
- }
-
- /**
- * Create a new Ort object.
- * <p>
- * The new object is embedded in the post data as JSON formatted string.
- * <p>
- * <pre>
- * <code>
- * {
- * "owner": [boolean],
- * "ort": [number],
- * "probeId": [number],
- * "ortsTyp": [string],
- * "ortszusatztext": [string],
- * "treeModified": null,
- * "parentModified": null,
- * "letzteAenderung": [date]
- * }
- * </code>
- * </pre>
- *
- * @return A response object containing the created Ort.
- */
- @POST
- @Path("/")
- @Produces(MediaType.APPLICATION_JSON)
- public Response create(
- @Context HttpHeaders headers,
- @Context HttpServletRequest request,
- Ortszuordnung ort
- ) {
- if (!authorization.isAuthorized(
- request,
- ort,
- RequestMethod.POST,
- Ortszuordnung.class)) {
- return new Response(false, 699, null);
- }
- Violation violation = validator.validate(ort);
- if (violation.hasErrors()) {
- Response response = new Response(false, 604, ort);
- response.setErrors(violation.getErrors());
- response.setWarnings(violation.getWarnings());
- return response;
- }
-
- /* Persist the new object*/
- Response response = defaultRepo.create(ort, "land");
- if(violation.hasWarnings()) {
- response.setWarnings(violation.getWarnings());
- }
-
- return authorization.filter(
- request,
- response,
- Ortszuordnung.class);
- }
-
- /**
- * Update an existing Ort object.
- * <p>
- * The object to update should come as JSON formatted string.
- * <pre>
- * <code>
- * {
- * "id": [number],
- * "owner": [boolean],
- * "ort": [number],
- * "probeId": [number],
- * "ortsTyp": [string],
- * "ortszusatztext": [string],
- * "treeModified": [timestamp],
- * "parentModified": [timestamp],
- * "letzteAenderung": [date]
- * }
- * </code>
- * </pre>
- *
- * @return Response object containing the updated Ort object.
- */
- @PUT
- @Path("/{id}")
- @Produces(MediaType.APPLICATION_JSON)
- public Response update(
- @Context HttpHeaders headers,
- @Context HttpServletRequest request,
- @PathParam("id") String id,
- Ortszuordnung ort
- ) {
- if (!authorization.isAuthorized(
- request,
- ort,
- RequestMethod.PUT,
- Ortszuordnung.class)) {
- return new Response(false, 699, null);
- }
- if (lock.isLocked(ort)) {
- return new Response(false, 697, null);
- }
- Violation violation = validator.validate(ort);
- if (violation.hasErrors()) {
- Response response = new Response(false, 604, ort);
- response.setErrors(violation.getErrors());
- response.setWarnings(violation.getWarnings());
- return response;
- }
-
- Response response = defaultRepo.update(ort, "land");
- if (!response.getSuccess()) {
- return response;
- }
- Response updated = defaultRepo.getById(
- Ortszuordnung.class,
- ((Ortszuordnung)response.getData()).getId(), "land");
- if(violation.hasWarnings()) {
- updated.setWarnings(violation.getWarnings());
- }
-
- return authorization.filter(
- request,
- updated,
- Ortszuordnung.class);
- }
-
- /**
- * Delete an existing Ort object by id.
- * <p>
- * The id is appended to the URL as a path parameter.
- * <p>
- * Example: http://example.com/orortt/{id}
- *
- * @return Response object.
- */
- @DELETE
- @Path("/{id}")
- @Produces(MediaType.APPLICATION_JSON)
- public Response delete(
- @Context HttpHeaders headers,
- @Context HttpServletRequest request,
- @PathParam("id") String id
- ) {
- Response object =
- defaultRepo.getById(Ortszuordnung.class, Integer.valueOf(id), "land");
- Ortszuordnung ortObj = (Ortszuordnung)object.getData();
- if (!authorization.isAuthorized(
- request,
- ortObj,
- RequestMethod.PUT,
- Ortszuordnung.class)) {
- return new Response(false, 699, null);
- }
- if (lock.isLocked(ortObj)) {
- return new Response(false, 697, null);
- }
-
- return defaultRepo.delete(ortObj, "land");
- }
-}
diff -r e36e42cbd1d8 -r a0a5111b2aa6 src/main/java/de/intevation/lada/rest/OrtszuordnungService.java
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/main/java/de/intevation/lada/rest/OrtszuordnungService.java Fri Jan 27 15:13:12 2017 +0100
@@ -0,0 +1,337 @@
+/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz
+ * Software engineering by Intevation GmbH
+ *
+ * This file is Free Software under the GNU GPL (v>=3)
+ * and comes with ABSOLUTELY NO WARRANTY! Check out
+ * the documentation coming with IMIS-Labordaten-Application for details.
+ */
+package de.intevation.lada.rest;
+
+import javax.enterprise.context.RequestScoped;
+import javax.inject.Inject;
+import javax.servlet.http.HttpServletRequest;
+import javax.ws.rs.DELETE;
+import javax.ws.rs.GET;
+import javax.ws.rs.POST;
+import javax.ws.rs.PUT;
+import javax.ws.rs.Path;
+import javax.ws.rs.PathParam;
+import javax.ws.rs.Produces;
+import javax.ws.rs.core.Context;
+import javax.ws.rs.core.HttpHeaders;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.MultivaluedMap;
+import javax.ws.rs.core.UriInfo;
+
+import org.apache.log4j.Logger;
+
+import de.intevation.lada.lock.LockConfig;
+import de.intevation.lada.lock.LockType;
+import de.intevation.lada.lock.ObjectLocker;
+import de.intevation.lada.model.land.Ortszuordnung;
+import de.intevation.lada.util.annotation.AuthorizationConfig;
+import de.intevation.lada.util.annotation.RepositoryConfig;
+import de.intevation.lada.util.auth.Authorization;
+import de.intevation.lada.util.auth.AuthorizationType;
+import de.intevation.lada.util.data.QueryBuilder;
+import de.intevation.lada.util.data.Repository;
+import de.intevation.lada.util.data.RepositoryType;
+import de.intevation.lada.util.rest.RequestMethod;
+import de.intevation.lada.util.rest.Response;
+import de.intevation.lada.validation.Validator;
+import de.intevation.lada.validation.Violation;
+import de.intevation.lada.validation.annotation.ValidationConfig;
+
+/**
+ * REST service for Ort objects.
+ * <p>
+ * The services produce data in the application/json media type.
+ * All HTTP methods use the authorization module to determine if the user is
+ * allowed to perform the requested action.
+ * A typical response holds information about the action performed and the data.
+ * <pre>
+ * <code>
+ * {
+ * "success": [boolean];
+ * "message": [string],
+ * "data":[{
+ * "id": [number],
+ * "letzteAenderung": [timestamp],
+ * "ortsTyp": [string],
+ * "ortszusatztext": [string],
+ * "probeId": [number],
+ * "ort": [number],
+ * "owner": [boolean],
+ * "readonly": [boolean],
+ * "treeModified": [timestamp],
+ * "parentModified": [timestamp]
+ * }],
+ * "errors": [object],
+ * "warnings": [object],
+ * "readonly": [boolean],
+ * "totalCount": [number]
+ * }
+ * </code>
+ * </pre>
+ *
+ * @author <a href="mailto:rrenkert at intevation.de">Raimund Renkert</a>
+ */
+ at Path("rest/ortszuordnung")
+ at RequestScoped
+public class OrtszuordnungService {
+
+ /**
+ * The logger used in this class.
+ */
+ @Inject
+ private Logger logger;
+
+ /**
+ * The data repository granting read/write access.
+ */
+ @Inject
+ @RepositoryConfig(type=RepositoryType.RW)
+ private Repository defaultRepo;
+
+ /**
+ * The object lock mechanism.
+ */
+ @Inject
+ @LockConfig(type=LockType.TIMESTAMP)
+ private ObjectLocker lock;
+
+ /**
+ * The authorization module.
+ */
+ @Inject
+ @AuthorizationConfig(type=AuthorizationType.HEADER)
+ private Authorization authorization;
+
+ @Inject
+ @ValidationConfig(type="Ortszuordnung")
+ private Validator validator;
+
+ /**
+ * Get all Ort objects.
+ * <p>
+ * The requested objects can be filtered using a URL parameter named
+ * probeId.
+ * <p>
+ * Example: http://example.com/ort?probeId=[ID]
+ *
+ *
+ * @return Response object containing all Ort objects.
+ */
+ @GET
+ @Path("/")
+ @Produces(MediaType.APPLICATION_JSON)
+ public Response get(
+ @Context HttpHeaders headers,
+ @Context UriInfo info,
+ @Context HttpServletRequest request
+ ) {
+ MultivaluedMap<String, String> params = info.getQueryParameters();
+ if (params.isEmpty() || !params.containsKey("probeId")) {
+ logger.debug("get all");
+ return defaultRepo.getAll(Ortszuordnung.class, "land");
+ }
+ String probeId = params.getFirst("probeId");
+ QueryBuilder<Ortszuordnung> builder =
+ new QueryBuilder<Ortszuordnung>(
+ defaultRepo.entityManager("land"),
+ Ortszuordnung.class);
+ builder.and("probeId", probeId);
+ return authorization.filter(
+ request,
+ defaultRepo.filter(builder.getQuery(), "land"),
+ Ortszuordnung.class);
+ }
+
+ /**
+ * Get a Ort object by id.
+ * <p>
+ * The id is appended to the URL as a path parameter.
+ * <p>
+ * Example: http://example.com/ort/{id}
+ *
+ * @return Response object containing a single Ort.
+ */
+ @GET
+ @Path("/{id}")
+ @Produces(MediaType.APPLICATION_JSON)
+ public Response getById(
+ @Context HttpHeaders headers,
+ @Context HttpServletRequest request,
+ @PathParam("id") String id
+ ) {
+ Response response =
+ defaultRepo.getById(Ortszuordnung.class, Integer.valueOf(id), "land");
+ Ortszuordnung ort = (Ortszuordnung)response.getData();
+ Violation violation = validator.validate(ort);
+ if (violation.hasErrors() || violation.hasWarnings()) {
+ response.setErrors(violation.getErrors());
+ response.setWarnings(violation.getWarnings());
+ }
+ return authorization.filter(
+ request,
+ response,
+ Ortszuordnung.class);
+ }
+
+ /**
+ * Create a new Ort object.
+ * <p>
+ * The new object is embedded in the post data as JSON formatted string.
+ * <p>
+ * <pre>
+ * <code>
+ * {
+ * "owner": [boolean],
+ * "ort": [number],
+ * "probeId": [number],
+ * "ortsTyp": [string],
+ * "ortszusatztext": [string],
+ * "treeModified": null,
+ * "parentModified": null,
+ * "letzteAenderung": [date]
+ * }
+ * </code>
+ * </pre>
+ *
+ * @return A response object containing the created Ort.
+ */
+ @POST
+ @Path("/")
+ @Produces(MediaType.APPLICATION_JSON)
+ public Response create(
+ @Context HttpHeaders headers,
+ @Context HttpServletRequest request,
+ Ortszuordnung ort
+ ) {
+ if (!authorization.isAuthorized(
+ request,
+ ort,
+ RequestMethod.POST,
+ Ortszuordnung.class)) {
+ return new Response(false, 699, null);
+ }
+ Violation violation = validator.validate(ort);
+ if (violation.hasErrors()) {
+ Response response = new Response(false, 604, ort);
+ response.setErrors(violation.getErrors());
+ response.setWarnings(violation.getWarnings());
+ return response;
+ }
+
+ /* Persist the new object*/
+ Response response = defaultRepo.create(ort, "land");
+ if(violation.hasWarnings()) {
+ response.setWarnings(violation.getWarnings());
+ }
+
+ return authorization.filter(
+ request,
+ response,
+ Ortszuordnung.class);
+ }
+
+ /**
+ * Update an existing Ort object.
+ * <p>
+ * The object to update should come as JSON formatted string.
+ * <pre>
+ * <code>
+ * {
+ * "id": [number],
+ * "owner": [boolean],
+ * "ort": [number],
+ * "probeId": [number],
+ * "ortsTyp": [string],
+ * "ortszusatztext": [string],
+ * "treeModified": [timestamp],
+ * "parentModified": [timestamp],
+ * "letzteAenderung": [date]
+ * }
+ * </code>
+ * </pre>
+ *
+ * @return Response object containing the updated Ort object.
+ */
+ @PUT
+ @Path("/{id}")
+ @Produces(MediaType.APPLICATION_JSON)
+ public Response update(
+ @Context HttpHeaders headers,
+ @Context HttpServletRequest request,
+ @PathParam("id") String id,
+ Ortszuordnung ort
+ ) {
+ if (!authorization.isAuthorized(
+ request,
+ ort,
+ RequestMethod.PUT,
+ Ortszuordnung.class)) {
+ return new Response(false, 699, null);
+ }
+ if (lock.isLocked(ort)) {
+ return new Response(false, 697, null);
+ }
+ Violation violation = validator.validate(ort);
+ if (violation.hasErrors()) {
+ Response response = new Response(false, 604, ort);
+ response.setErrors(violation.getErrors());
+ response.setWarnings(violation.getWarnings());
+ return response;
+ }
+
+ Response response = defaultRepo.update(ort, "land");
+ if (!response.getSuccess()) {
+ return response;
+ }
+ Response updated = defaultRepo.getById(
+ Ortszuordnung.class,
+ ((Ortszuordnung)response.getData()).getId(), "land");
+ if(violation.hasWarnings()) {
+ updated.setWarnings(violation.getWarnings());
+ }
+
+ return authorization.filter(
+ request,
+ updated,
+ Ortszuordnung.class);
+ }
+
+ /**
+ * Delete an existing Ort object by id.
+ * <p>
+ * The id is appended to the URL as a path parameter.
+ * <p>
+ * Example: http://example.com/orortt/{id}
+ *
+ * @return Response object.
+ */
+ @DELETE
+ @Path("/{id}")
+ @Produces(MediaType.APPLICATION_JSON)
+ public Response delete(
+ @Context HttpHeaders headers,
+ @Context HttpServletRequest request,
+ @PathParam("id") String id
+ ) {
+ Response object =
+ defaultRepo.getById(Ortszuordnung.class, Integer.valueOf(id), "land");
+ Ortszuordnung ortObj = (Ortszuordnung)object.getData();
+ if (!authorization.isAuthorized(
+ request,
+ ortObj,
+ RequestMethod.PUT,
+ Ortszuordnung.class)) {
+ return new Response(false, 699, null);
+ }
+ if (lock.isLocked(ortObj)) {
+ return new Response(false, 697, null);
+ }
+
+ return defaultRepo.delete(ortObj, "land");
+ }
+}
More information about the Lada-commits
mailing list