annotate src/main/java/de/intevation/lada/rest/OrtszuordnungMpService.java @ 1265:a1323ef2c330

Changed ortszuordnungs model in messprogramm.
author Raimund Renkert <raimund.renkert@intevation.de>
date Fri, 27 Jan 2017 15:14:12 +0100
parents
children
rev   line source
1265
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
1 /* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
2 * Software engineering by Intevation GmbH
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
3 *
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
4 * This file is Free Software under the GNU GPL (v>=3)
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
5 * and comes with ABSOLUTELY NO WARRANTY! Check out
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
6 * the documentation coming with IMIS-Labordaten-Application for details.
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
7 */
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
8 package de.intevation.lada.rest;
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
9
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
10 import javax.enterprise.context.RequestScoped;
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
11 import javax.inject.Inject;
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
12 import javax.servlet.http.HttpServletRequest;
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
13 import javax.ws.rs.DELETE;
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
14 import javax.ws.rs.GET;
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
15 import javax.ws.rs.POST;
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
16 import javax.ws.rs.PUT;
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
17 import javax.ws.rs.Path;
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
18 import javax.ws.rs.PathParam;
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
19 import javax.ws.rs.Produces;
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
20 import javax.ws.rs.core.Context;
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
21 import javax.ws.rs.core.HttpHeaders;
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
22 import javax.ws.rs.core.MediaType;
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
23 import javax.ws.rs.core.MultivaluedMap;
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
24 import javax.ws.rs.core.UriInfo;
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
25
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
26 import de.intevation.lada.lock.LockConfig;
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
27 import de.intevation.lada.lock.LockType;
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
28 import de.intevation.lada.lock.ObjectLocker;
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
29 import de.intevation.lada.model.land.OrtszuordnungMp;
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
30 import de.intevation.lada.util.annotation.AuthorizationConfig;
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
31 import de.intevation.lada.util.annotation.RepositoryConfig;
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
32 import de.intevation.lada.util.auth.Authorization;
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
33 import de.intevation.lada.util.auth.AuthorizationType;
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
34 import de.intevation.lada.util.data.QueryBuilder;
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
35 import de.intevation.lada.util.data.Repository;
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
36 import de.intevation.lada.util.data.RepositoryType;
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
37 import de.intevation.lada.util.rest.RequestMethod;
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
38 import de.intevation.lada.util.rest.Response;
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
39 import de.intevation.lada.validation.Validator;
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
40 import de.intevation.lada.validation.Violation;
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
41 import de.intevation.lada.validation.annotation.ValidationConfig;
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
42
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
43 /**
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
44 * REST service for Ort objects.
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
45 * <p>
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
46 * The services produce data in the application/json media type.
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
47 * All HTTP methods use the authorization module to determine if the user is
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
48 * allowed to perform the requested action.
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
49 * A typical response holds information about the action performed and the data.
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
50 * <pre>
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
51 * <code>
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
52 * {
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
53 * "success": [boolean];
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
54 * "message": [string],
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
55 * "data":[{
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
56 * "id": [number],
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
57 * "letzteAenderung": [timestamp],
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
58 * "ortsTyp": [string],
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
59 * "ortszusatztext": [string],
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
60 * "messprogrammId": [number],
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
61 * "ort": [number],
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
62 * "owner": [boolean],
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
63 * "readonly": [boolean],
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
64 * "treeModified": [timestamp],
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
65 * "parentModified": [timestamp]
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
66 * }],
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
67 * "errors": [object],
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
68 * "warnings": [object],
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
69 * "readonly": [boolean],
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
70 * "totalCount": [number]
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
71 * }
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
72 * </code>
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
73 * </pre>
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
74 *
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
75 * @author <a href="mailto:rrenkert@intevation.de">Raimund Renkert</a>
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
76 */
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
77 @Path("rest/ortszuordnungmp")
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
78 @RequestScoped
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
79 public class OrtszuordnungMpService {
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
80
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
81 /**
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
82 * The data repository granting read/write access.
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
83 */
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
84 @Inject
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
85 @RepositoryConfig(type=RepositoryType.RW)
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
86 private Repository defaultRepo;
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
87
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
88 /**
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
89 * The object lock mechanism.
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
90 */
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
91 @Inject
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
92 @LockConfig(type=LockType.TIMESTAMP)
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
93 private ObjectLocker lock;
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
94
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
95 /**
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
96 * The authorization module.
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
97 */
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
98 @Inject
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
99 @AuthorizationConfig(type=AuthorizationType.HEADER)
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
100 private Authorization authorization;
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
101
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
102 @Inject
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
103 @ValidationConfig(type="Ortszuordnung")
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
104 private Validator validator;
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
105
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
106 /**
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
107 * Get all Ort objects.
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
108 * <p>
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
109 * The requested objects can be filtered using a URL parameter named
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
110 * messprogrammId.
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
111 * <p>
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
112 * Example: http://example.com/ort?messprogrammId=[ID]
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
113 *
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
114 *
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
115 * @return Response object containing all Ort objects.
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
116 */
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
117 @GET
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
118 @Path("/")
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
119 @Produces(MediaType.APPLICATION_JSON)
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
120 public Response get(
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
121 @Context HttpHeaders headers,
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
122 @Context UriInfo info,
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
123 @Context HttpServletRequest request
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
124 ) {
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
125 MultivaluedMap<String, String> params = info.getQueryParameters();
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
126 if (params.isEmpty() || !params.containsKey("messprogrammId")) {
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
127 return defaultRepo.getAll(OrtszuordnungMp.class, "land");
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
128 }
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
129 String messprogrammId = params.getFirst("messprogrammId");
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
130 QueryBuilder<OrtszuordnungMp> builder =
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
131 new QueryBuilder<OrtszuordnungMp>(
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
132 defaultRepo.entityManager("land"),
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
133 OrtszuordnungMp.class);
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
134 builder.and("messprogrammId", messprogrammId);
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
135 return authorization.filter(
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
136 request,
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
137 defaultRepo.filter(builder.getQuery(), "land"),
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
138 OrtszuordnungMp.class);
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
139 }
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
140
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
141 /**
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
142 * Get a Ort object by id.
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
143 * <p>
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
144 * The id is appended to the URL as a path parameter.
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
145 * <p>
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
146 * Example: http://example.com/ort/{id}
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
147 *
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
148 * @return Response object containing a single Ort.
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
149 */
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
150 @GET
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
151 @Path("/{id}")
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
152 @Produces(MediaType.APPLICATION_JSON)
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
153 public Response getById(
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
154 @Context HttpHeaders headers,
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
155 @Context HttpServletRequest request,
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
156 @PathParam("id") String id
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
157 ) {
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
158 Response response =
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
159 defaultRepo.getById(OrtszuordnungMp.class, Integer.valueOf(id), "land");
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
160 OrtszuordnungMp ort = (OrtszuordnungMp)response.getData();
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
161 Violation violation = validator.validate(ort);
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
162 if (violation.hasErrors() || violation.hasWarnings()) {
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
163 response.setErrors(violation.getErrors());
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
164 response.setWarnings(violation.getWarnings());
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
165 }
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
166 return authorization.filter(
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
167 request,
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
168 response,
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
169 OrtszuordnungMp.class);
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
170 }
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
171
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
172 /**
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
173 * Create a new Ort object.
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
174 * <p>
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
175 * The new object is embedded in the post data as JSON formatted string.
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
176 * <p>
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
177 * <pre>
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
178 * <code>
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
179 * {
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
180 * "owner": [boolean],
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
181 * "ort": [number],
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
182 * "messprogrammId": [number],
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
183 * "ortsTyp": [string],
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
184 * "ortszusatztext": [string],
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
185 * "treeModified": null,
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
186 * "parentModified": null,
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
187 * "letzteAenderung": [date]
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
188 * }
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
189 * </code>
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
190 * </pre>
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
191 *
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
192 * @return A response object containing the created Ort.
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
193 */
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
194 @POST
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
195 @Path("/")
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
196 @Produces(MediaType.APPLICATION_JSON)
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
197 public Response create(
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
198 @Context HttpHeaders headers,
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
199 @Context HttpServletRequest request,
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
200 OrtszuordnungMp ort
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
201 ) {
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
202 if (!authorization.isAuthorized(
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
203 request,
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
204 ort,
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
205 RequestMethod.POST,
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
206 OrtszuordnungMp.class)) {
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
207 return new Response(false, 699, null);
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
208 }
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
209 Violation violation = validator.validate(ort);
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
210 if (violation.hasErrors()) {
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
211 Response response = new Response(false, 604, ort);
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
212 response.setErrors(violation.getErrors());
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
213 response.setWarnings(violation.getWarnings());
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
214 return response;
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
215 }
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
216
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
217 /* Persist the new object*/
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
218 Response response = defaultRepo.create(ort, "land");
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
219 if(violation.hasWarnings()) {
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
220 response.setWarnings(violation.getWarnings());
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
221 }
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
222
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
223 return authorization.filter(
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
224 request,
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
225 response,
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
226 OrtszuordnungMp.class);
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
227 }
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
228
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
229 /**
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
230 * Update an existing Ort object.
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
231 * <p>
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
232 * The object to update should come as JSON formatted string.
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
233 * <pre>
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
234 * <code>
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
235 * {
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
236 * "id": [number],
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
237 * "owner": [boolean],
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
238 * "ort": [number],
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
239 * "messprogrammId": [number],
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
240 * "ortsTyp": [string],
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
241 * "ortszusatztext": [string],
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
242 * "treeModified": [timestamp],
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
243 * "parentModified": [timestamp],
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
244 * "letzteAenderung": [date]
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
245 * }
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
246 * </code>
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
247 * </pre>
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
248 *
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
249 * @return Response object containing the updated Ort object.
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
250 */
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
251 @PUT
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
252 @Path("/{id}")
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
253 @Produces(MediaType.APPLICATION_JSON)
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
254 public Response update(
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
255 @Context HttpHeaders headers,
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
256 @Context HttpServletRequest request,
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
257 @PathParam("id") String id,
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
258 OrtszuordnungMp ort
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
259 ) {
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
260 if (!authorization.isAuthorized(
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
261 request,
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
262 ort,
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
263 RequestMethod.PUT,
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
264 OrtszuordnungMp.class)) {
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
265 return new Response(false, 699, null);
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
266 }
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
267 Violation violation = validator.validate(ort);
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
268 if (violation.hasErrors()) {
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
269 Response response = new Response(false, 604, ort);
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
270 response.setErrors(violation.getErrors());
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
271 response.setWarnings(violation.getWarnings());
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
272 return response;
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
273 }
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
274
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
275 Response response = defaultRepo.update(ort, "land");
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
276 if (!response.getSuccess()) {
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
277 return response;
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
278 }
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
279 Response updated = defaultRepo.getById(
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
280 OrtszuordnungMp.class,
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
281 ((OrtszuordnungMp)response.getData()).getId(), "land");
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
282 if(violation.hasWarnings()) {
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
283 updated.setWarnings(violation.getWarnings());
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
284 }
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
285
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
286 return authorization.filter(
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
287 request,
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
288 updated,
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
289 OrtszuordnungMp.class);
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
290 }
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
291
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
292 /**
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
293 * Delete an existing Ort object by id.
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
294 * <p>
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
295 * The id is appended to the URL as a path parameter.
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
296 * <p>
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
297 * Example: http://example.com/orortt/{id}
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
298 *
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
299 * @return Response object.
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
300 */
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
301 @DELETE
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
302 @Path("/{id}")
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
303 @Produces(MediaType.APPLICATION_JSON)
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
304 public Response delete(
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
305 @Context HttpHeaders headers,
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
306 @Context HttpServletRequest request,
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
307 @PathParam("id") String id
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
308 ) {
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
309 Response object =
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
310 defaultRepo.getById(OrtszuordnungMp.class, Integer.valueOf(id), "land");
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
311 OrtszuordnungMp ortObj = (OrtszuordnungMp)object.getData();
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
312 if (!authorization.isAuthorized(
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
313 request,
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
314 ortObj,
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
315 RequestMethod.PUT,
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
316 OrtszuordnungMp.class)) {
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
317 return new Response(false, 699, null);
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
318 }
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
319
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
320 return defaultRepo.delete(ortObj, "land");
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
321 }
a1323ef2c330 Changed ortszuordnungs model in messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
322 }
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)