Mercurial > lada > lada-server
annotate src/main/java/de/intevation/lada/rest/stamm/OrtService.java @ 1266:e4cb532fde82
Filter orte by netzbetreiber.
author | Raimund Renkert <raimund.renkert@intevation.de> |
---|---|
date | Fri, 27 Jan 2017 15:14:53 +0100 |
parents | 9dfb52db6a0f |
children |
rev | line source |
---|---|
836
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
1 /* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
2 * Software engineering by Intevation GmbH |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
3 * |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
4 * This file is Free Software under the GNU GPL (v>=3) |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
5 * and comes with ABSOLUTELY NO WARRANTY! Check out |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
6 * the documentation coming with IMIS-Labordaten-Application for details. |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
7 */ |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
8 package de.intevation.lada.rest.stamm; |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
9 |
843
670f58112734
Allow paging for editable stammdaten and set readonly attribute.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
837
diff
changeset
|
10 import java.util.List; |
1214
6e6134bf1d6d
Avoid fetching the whole table from DB if we don't need it at all.
Tom Gottfried <tom@intevation.de>
parents:
1213
diff
changeset
|
11 import java.util.ArrayList; |
843
670f58112734
Allow paging for editable stammdaten and set readonly attribute.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
837
diff
changeset
|
12 |
836
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
13 import javax.enterprise.context.RequestScoped; |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
14 import javax.inject.Inject; |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
15 import javax.servlet.http.HttpServletRequest; |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
16 import javax.ws.rs.DELETE; |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
17 import javax.ws.rs.GET; |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
18 import javax.ws.rs.POST; |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
19 import javax.ws.rs.PUT; |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
20 import javax.ws.rs.Path; |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
21 import javax.ws.rs.PathParam; |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
22 import javax.ws.rs.Produces; |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
23 import javax.ws.rs.core.Context; |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
24 import javax.ws.rs.core.HttpHeaders; |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
25 import javax.ws.rs.core.MediaType; |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
26 import javax.ws.rs.core.MultivaluedMap; |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
27 import javax.ws.rs.core.UriInfo; |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
28 |
1237
e49c006b9076
Handle errors in OrtFactory and pass them to the client.
Tom Gottfried <tom@intevation.de>
parents:
1231
diff
changeset
|
29 import de.intevation.lada.importer.ReportItem; |
1213
aed3332cfacc
An Ort always has a location which is created from respective input.
Tom Gottfried <tom@intevation.de>
parents:
1097
diff
changeset
|
30 import de.intevation.lada.factory.OrtFactory; |
1097
186d602e031a
Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents:
956
diff
changeset
|
31 import de.intevation.lada.model.stammdaten.Filter; |
186d602e031a
Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents:
956
diff
changeset
|
32 import de.intevation.lada.model.stammdaten.Ort; |
836
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
33 import de.intevation.lada.util.annotation.AuthorizationConfig; |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
34 import de.intevation.lada.util.annotation.RepositoryConfig; |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
35 import de.intevation.lada.util.auth.Authorization; |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
36 import de.intevation.lada.util.auth.AuthorizationType; |
1266
e4cb532fde82
Filter orte by netzbetreiber.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1262
diff
changeset
|
37 import de.intevation.lada.util.auth.UserInfo; |
836
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
38 import de.intevation.lada.util.data.QueryBuilder; |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
39 import de.intevation.lada.util.data.Repository; |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
40 import de.intevation.lada.util.data.RepositoryType; |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
41 import de.intevation.lada.util.rest.RequestMethod; |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
42 import de.intevation.lada.util.rest.Response; |
1227
a0968660a4c5
Use reusable validation rule instead of in-service implementation.
Tom Gottfried <tom@intevation.de>
parents:
1214
diff
changeset
|
43 import de.intevation.lada.validation.Validator; |
a0968660a4c5
Use reusable validation rule instead of in-service implementation.
Tom Gottfried <tom@intevation.de>
parents:
1214
diff
changeset
|
44 import de.intevation.lada.validation.Violation; |
a0968660a4c5
Use reusable validation rule instead of in-service implementation.
Tom Gottfried <tom@intevation.de>
parents:
1214
diff
changeset
|
45 import de.intevation.lada.validation.annotation.ValidationConfig; |
836
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
46 |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
47 /** |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
48 * REST service for SOrt objects. |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
49 * <p> |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
50 * The services produce data in the application/json media type. |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
51 * A typical response holds information about the action performed and the data. |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
52 * <pre> |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
53 * <code> |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
54 * { |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
55 * "success": [boolean]; |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
56 * "message": [string], |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
57 * "data":[{ |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
58 * "id": [number], |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
59 * "beschreibung": [string], |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
60 * "bezeichnung": [string], |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
61 * "hoeheLand": [number], |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
62 * "koordXExtern": [string], |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
63 * "koordYExtern": [string], |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
64 * "latitude": [number], |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
65 * "letzteAenderung": [timestamp], |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
66 * "longitude": [number], |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
67 * "nutsCode": [string], |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
68 * "unscharf": [string], |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
69 * "koordinatenartId": [number], |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
70 * "netzbetreiberId": [number], |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
71 * "staatId": [number], |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
72 * "verwaltungseinheitId": [string], |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
73 * "otyp": [string] |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
74 * }], |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
75 * "errors": [object], |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
76 * "warnings": [object], |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
77 * "readonly": [boolean], |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
78 * "totalCount": [number] |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
79 * } |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
80 * </code> |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
81 * </pre> |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
82 * |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
83 * @author <a href="mailto:rrenkert@intevation.de">Raimund Renkert</a> |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
84 */ |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
85 @Path("rest/ort") |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
86 @RequestScoped |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
87 public class OrtService { |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
88 |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
89 /** |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
90 * The data repository granting read/write access. |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
91 */ |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
92 @Inject |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
93 @RepositoryConfig(type=RepositoryType.RW) |
919
e5a9c27047a4
Updated stammdaten services: allow multiselect filters and check duplicates
Raimund Renkert <raimund.renkert@intevation.de>
parents:
853
diff
changeset
|
94 private Repository repository; |
836
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
95 |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
96 @Inject |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
97 @AuthorizationConfig(type=AuthorizationType.HEADER) |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
98 private Authorization authorization; |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
99 |
1213
aed3332cfacc
An Ort always has a location which is created from respective input.
Tom Gottfried <tom@intevation.de>
parents:
1097
diff
changeset
|
100 @Inject |
aed3332cfacc
An Ort always has a location which is created from respective input.
Tom Gottfried <tom@intevation.de>
parents:
1097
diff
changeset
|
101 private OrtFactory ortFactory; |
aed3332cfacc
An Ort always has a location which is created from respective input.
Tom Gottfried <tom@intevation.de>
parents:
1097
diff
changeset
|
102 |
1227
a0968660a4c5
Use reusable validation rule instead of in-service implementation.
Tom Gottfried <tom@intevation.de>
parents:
1214
diff
changeset
|
103 @Inject |
a0968660a4c5
Use reusable validation rule instead of in-service implementation.
Tom Gottfried <tom@intevation.de>
parents:
1214
diff
changeset
|
104 @ValidationConfig(type="Ort") |
a0968660a4c5
Use reusable validation rule instead of in-service implementation.
Tom Gottfried <tom@intevation.de>
parents:
1214
diff
changeset
|
105 private Validator validator; |
a0968660a4c5
Use reusable validation rule instead of in-service implementation.
Tom Gottfried <tom@intevation.de>
parents:
1214
diff
changeset
|
106 |
836
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
107 /** |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
108 * Get all SOrt objects. |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
109 * <p> |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
110 * The requested objects can be filtered using a URL parameter named |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
111 * ortId. |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
112 * <p> |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
113 * Example: http://example.com/location?ortId=[ID] |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
114 * |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
115 * @return Response object containing all (filtered) SOrt objects. |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
116 */ |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
117 @GET |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
118 @Path("/") |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
119 @Produces(MediaType.APPLICATION_JSON) |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
120 public Response get( |
843
670f58112734
Allow paging for editable stammdaten and set readonly attribute.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
837
diff
changeset
|
121 @Context HttpServletRequest request, |
836
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
122 @Context UriInfo info |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
123 ) { |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
124 MultivaluedMap<String, String> params = info.getQueryParameters(); |
919
e5a9c27047a4
Updated stammdaten services: allow multiselect filters and check duplicates
Raimund Renkert <raimund.renkert@intevation.de>
parents:
853
diff
changeset
|
125 if (params.containsKey("ortId")) { |
e5a9c27047a4
Updated stammdaten services: allow multiselect filters and check duplicates
Raimund Renkert <raimund.renkert@intevation.de>
parents:
853
diff
changeset
|
126 Integer id; |
e5a9c27047a4
Updated stammdaten services: allow multiselect filters and check duplicates
Raimund Renkert <raimund.renkert@intevation.de>
parents:
853
diff
changeset
|
127 try { |
e5a9c27047a4
Updated stammdaten services: allow multiselect filters and check duplicates
Raimund Renkert <raimund.renkert@intevation.de>
parents:
853
diff
changeset
|
128 id = Integer.valueOf(params.getFirst("qid")); |
843
670f58112734
Allow paging for editable stammdaten and set readonly attribute.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
837
diff
changeset
|
129 } |
919
e5a9c27047a4
Updated stammdaten services: allow multiselect filters and check duplicates
Raimund Renkert <raimund.renkert@intevation.de>
parents:
853
diff
changeset
|
130 catch (NumberFormatException e) { |
e5a9c27047a4
Updated stammdaten services: allow multiselect filters and check duplicates
Raimund Renkert <raimund.renkert@intevation.de>
parents:
853
diff
changeset
|
131 return new Response(false, 603, "Not a valid filter id"); |
843
670f58112734
Allow paging for editable stammdaten and set readonly attribute.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
837
diff
changeset
|
132 } |
919
e5a9c27047a4
Updated stammdaten services: allow multiselect filters and check duplicates
Raimund Renkert <raimund.renkert@intevation.de>
parents:
853
diff
changeset
|
133 |
e5a9c27047a4
Updated stammdaten services: allow multiselect filters and check duplicates
Raimund Renkert <raimund.renkert@intevation.de>
parents:
853
diff
changeset
|
134 Ort o = repository.getByIdPlain(Ort.class, id, "stamm"); |
e5a9c27047a4
Updated stammdaten services: allow multiselect filters and check duplicates
Raimund Renkert <raimund.renkert@intevation.de>
parents:
853
diff
changeset
|
135 o.setReadonly( |
e5a9c27047a4
Updated stammdaten services: allow multiselect filters and check duplicates
Raimund Renkert <raimund.renkert@intevation.de>
parents:
853
diff
changeset
|
136 !authorization.isAuthorized( |
e5a9c27047a4
Updated stammdaten services: allow multiselect filters and check duplicates
Raimund Renkert <raimund.renkert@intevation.de>
parents:
853
diff
changeset
|
137 request, |
e5a9c27047a4
Updated stammdaten services: allow multiselect filters and check duplicates
Raimund Renkert <raimund.renkert@intevation.de>
parents:
853
diff
changeset
|
138 o, |
e5a9c27047a4
Updated stammdaten services: allow multiselect filters and check duplicates
Raimund Renkert <raimund.renkert@intevation.de>
parents:
853
diff
changeset
|
139 RequestMethod.POST, |
e5a9c27047a4
Updated stammdaten services: allow multiselect filters and check duplicates
Raimund Renkert <raimund.renkert@intevation.de>
parents:
853
diff
changeset
|
140 Ort.class)); |
e5a9c27047a4
Updated stammdaten services: allow multiselect filters and check duplicates
Raimund Renkert <raimund.renkert@intevation.de>
parents:
853
diff
changeset
|
141 return new Response(true, 200, o); |
836
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
142 } |
1214
6e6134bf1d6d
Avoid fetching the whole table from DB if we don't need it at all.
Tom Gottfried <tom@intevation.de>
parents:
1213
diff
changeset
|
143 |
6e6134bf1d6d
Avoid fetching the whole table from DB if we don't need it at all.
Tom Gottfried <tom@intevation.de>
parents:
1213
diff
changeset
|
144 List<Ort> orte = new ArrayList<Ort>(); |
919
e5a9c27047a4
Updated stammdaten services: allow multiselect filters and check duplicates
Raimund Renkert <raimund.renkert@intevation.de>
parents:
853
diff
changeset
|
145 if (params.containsKey("qid")) { |
e5a9c27047a4
Updated stammdaten services: allow multiselect filters and check duplicates
Raimund Renkert <raimund.renkert@intevation.de>
parents:
853
diff
changeset
|
146 Integer id = null; |
e5a9c27047a4
Updated stammdaten services: allow multiselect filters and check duplicates
Raimund Renkert <raimund.renkert@intevation.de>
parents:
853
diff
changeset
|
147 try { |
e5a9c27047a4
Updated stammdaten services: allow multiselect filters and check duplicates
Raimund Renkert <raimund.renkert@intevation.de>
parents:
853
diff
changeset
|
148 id = Integer.valueOf(params.getFirst("qid")); |
e5a9c27047a4
Updated stammdaten services: allow multiselect filters and check duplicates
Raimund Renkert <raimund.renkert@intevation.de>
parents:
853
diff
changeset
|
149 } |
e5a9c27047a4
Updated stammdaten services: allow multiselect filters and check duplicates
Raimund Renkert <raimund.renkert@intevation.de>
parents:
853
diff
changeset
|
150 catch (NumberFormatException e) { |
e5a9c27047a4
Updated stammdaten services: allow multiselect filters and check duplicates
Raimund Renkert <raimund.renkert@intevation.de>
parents:
853
diff
changeset
|
151 return new Response(false, 603, "Not a valid filter id"); |
e5a9c27047a4
Updated stammdaten services: allow multiselect filters and check duplicates
Raimund Renkert <raimund.renkert@intevation.de>
parents:
853
diff
changeset
|
152 } |
e5a9c27047a4
Updated stammdaten services: allow multiselect filters and check duplicates
Raimund Renkert <raimund.renkert@intevation.de>
parents:
853
diff
changeset
|
153 QueryBuilder<Filter> fBuilder = new QueryBuilder<Filter>( |
e5a9c27047a4
Updated stammdaten services: allow multiselect filters and check duplicates
Raimund Renkert <raimund.renkert@intevation.de>
parents:
853
diff
changeset
|
154 repository.entityManager("stamm"), |
e5a9c27047a4
Updated stammdaten services: allow multiselect filters and check duplicates
Raimund Renkert <raimund.renkert@intevation.de>
parents:
853
diff
changeset
|
155 Filter.class |
e5a9c27047a4
Updated stammdaten services: allow multiselect filters and check duplicates
Raimund Renkert <raimund.renkert@intevation.de>
parents:
853
diff
changeset
|
156 ); |
e5a9c27047a4
Updated stammdaten services: allow multiselect filters and check duplicates
Raimund Renkert <raimund.renkert@intevation.de>
parents:
853
diff
changeset
|
157 fBuilder.and("query", id); |
e5a9c27047a4
Updated stammdaten services: allow multiselect filters and check duplicates
Raimund Renkert <raimund.renkert@intevation.de>
parents:
853
diff
changeset
|
158 List<Filter> filters = repository.filterPlain(fBuilder.getQuery(), "stamm"); |
e5a9c27047a4
Updated stammdaten services: allow multiselect filters and check duplicates
Raimund Renkert <raimund.renkert@intevation.de>
parents:
853
diff
changeset
|
159 QueryBuilder<Ort> builder = |
e5a9c27047a4
Updated stammdaten services: allow multiselect filters and check duplicates
Raimund Renkert <raimund.renkert@intevation.de>
parents:
853
diff
changeset
|
160 new QueryBuilder<Ort>( |
e5a9c27047a4
Updated stammdaten services: allow multiselect filters and check duplicates
Raimund Renkert <raimund.renkert@intevation.de>
parents:
853
diff
changeset
|
161 repository.entityManager("stamm"), |
e5a9c27047a4
Updated stammdaten services: allow multiselect filters and check duplicates
Raimund Renkert <raimund.renkert@intevation.de>
parents:
853
diff
changeset
|
162 Ort.class |
e5a9c27047a4
Updated stammdaten services: allow multiselect filters and check duplicates
Raimund Renkert <raimund.renkert@intevation.de>
parents:
853
diff
changeset
|
163 ); |
e5a9c27047a4
Updated stammdaten services: allow multiselect filters and check duplicates
Raimund Renkert <raimund.renkert@intevation.de>
parents:
853
diff
changeset
|
164 for (Filter filter: filters) { |
e5a9c27047a4
Updated stammdaten services: allow multiselect filters and check duplicates
Raimund Renkert <raimund.renkert@intevation.de>
parents:
853
diff
changeset
|
165 String param = params.get(filter.getDataIndex()).get(0); |
e5a9c27047a4
Updated stammdaten services: allow multiselect filters and check duplicates
Raimund Renkert <raimund.renkert@intevation.de>
parents:
853
diff
changeset
|
166 if (param == null || param.isEmpty()) { |
e5a9c27047a4
Updated stammdaten services: allow multiselect filters and check duplicates
Raimund Renkert <raimund.renkert@intevation.de>
parents:
853
diff
changeset
|
167 continue; |
e5a9c27047a4
Updated stammdaten services: allow multiselect filters and check duplicates
Raimund Renkert <raimund.renkert@intevation.de>
parents:
853
diff
changeset
|
168 } |
e5a9c27047a4
Updated stammdaten services: allow multiselect filters and check duplicates
Raimund Renkert <raimund.renkert@intevation.de>
parents:
853
diff
changeset
|
169 if (filter.getMultiselect()) { |
e5a9c27047a4
Updated stammdaten services: allow multiselect filters and check duplicates
Raimund Renkert <raimund.renkert@intevation.de>
parents:
853
diff
changeset
|
170 param = param.trim(); |
e5a9c27047a4
Updated stammdaten services: allow multiselect filters and check duplicates
Raimund Renkert <raimund.renkert@intevation.de>
parents:
853
diff
changeset
|
171 String[] parts = param.split(","); |
e5a9c27047a4
Updated stammdaten services: allow multiselect filters and check duplicates
Raimund Renkert <raimund.renkert@intevation.de>
parents:
853
diff
changeset
|
172 for (String part: parts) { |
e5a9c27047a4
Updated stammdaten services: allow multiselect filters and check duplicates
Raimund Renkert <raimund.renkert@intevation.de>
parents:
853
diff
changeset
|
173 builder.or(filter.getDataIndex(), part); |
e5a9c27047a4
Updated stammdaten services: allow multiselect filters and check duplicates
Raimund Renkert <raimund.renkert@intevation.de>
parents:
853
diff
changeset
|
174 } |
e5a9c27047a4
Updated stammdaten services: allow multiselect filters and check duplicates
Raimund Renkert <raimund.renkert@intevation.de>
parents:
853
diff
changeset
|
175 } |
e5a9c27047a4
Updated stammdaten services: allow multiselect filters and check duplicates
Raimund Renkert <raimund.renkert@intevation.de>
parents:
853
diff
changeset
|
176 else { |
e5a9c27047a4
Updated stammdaten services: allow multiselect filters and check duplicates
Raimund Renkert <raimund.renkert@intevation.de>
parents:
853
diff
changeset
|
177 builder.or(filter.getDataIndex(), param); |
e5a9c27047a4
Updated stammdaten services: allow multiselect filters and check duplicates
Raimund Renkert <raimund.renkert@intevation.de>
parents:
853
diff
changeset
|
178 } |
e5a9c27047a4
Updated stammdaten services: allow multiselect filters and check duplicates
Raimund Renkert <raimund.renkert@intevation.de>
parents:
853
diff
changeset
|
179 } |
e5a9c27047a4
Updated stammdaten services: allow multiselect filters and check duplicates
Raimund Renkert <raimund.renkert@intevation.de>
parents:
853
diff
changeset
|
180 |
e5a9c27047a4
Updated stammdaten services: allow multiselect filters and check duplicates
Raimund Renkert <raimund.renkert@intevation.de>
parents:
853
diff
changeset
|
181 orte = repository.filterPlain(builder.getQuery(), "stamm"); |
e5a9c27047a4
Updated stammdaten services: allow multiselect filters and check duplicates
Raimund Renkert <raimund.renkert@intevation.de>
parents:
853
diff
changeset
|
182 } |
1214
6e6134bf1d6d
Avoid fetching the whole table from DB if we don't need it at all.
Tom Gottfried <tom@intevation.de>
parents:
1213
diff
changeset
|
183 else { |
1266
e4cb532fde82
Filter orte by netzbetreiber.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1262
diff
changeset
|
184 UserInfo user = authorization.getInfo(request); |
e4cb532fde82
Filter orte by netzbetreiber.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1262
diff
changeset
|
185 QueryBuilder<Ort> builder = |
e4cb532fde82
Filter orte by netzbetreiber.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1262
diff
changeset
|
186 new QueryBuilder<Ort>( |
e4cb532fde82
Filter orte by netzbetreiber.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1262
diff
changeset
|
187 repository.entityManager("stamm"), |
e4cb532fde82
Filter orte by netzbetreiber.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1262
diff
changeset
|
188 Ort.class |
e4cb532fde82
Filter orte by netzbetreiber.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1262
diff
changeset
|
189 ); |
e4cb532fde82
Filter orte by netzbetreiber.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1262
diff
changeset
|
190 for (String nb : user.getNetzbetreiber()) { |
e4cb532fde82
Filter orte by netzbetreiber.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1262
diff
changeset
|
191 builder.or("netzbetreiberId", nb); |
e4cb532fde82
Filter orte by netzbetreiber.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1262
diff
changeset
|
192 } |
e4cb532fde82
Filter orte by netzbetreiber.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1262
diff
changeset
|
193 orte = repository.filterPlain(builder.getQuery(), "stamm"); |
1214
6e6134bf1d6d
Avoid fetching the whole table from DB if we don't need it at all.
Tom Gottfried <tom@intevation.de>
parents:
1213
diff
changeset
|
194 } |
919
e5a9c27047a4
Updated stammdaten services: allow multiselect filters and check duplicates
Raimund Renkert <raimund.renkert@intevation.de>
parents:
853
diff
changeset
|
195 |
e5a9c27047a4
Updated stammdaten services: allow multiselect filters and check duplicates
Raimund Renkert <raimund.renkert@intevation.de>
parents:
853
diff
changeset
|
196 int size = orte.size(); |
e5a9c27047a4
Updated stammdaten services: allow multiselect filters and check duplicates
Raimund Renkert <raimund.renkert@intevation.de>
parents:
853
diff
changeset
|
197 if (params.containsKey("start") && params.containsKey("limit")) { |
e5a9c27047a4
Updated stammdaten services: allow multiselect filters and check duplicates
Raimund Renkert <raimund.renkert@intevation.de>
parents:
853
diff
changeset
|
198 int start = Integer.valueOf(params.getFirst("start")); |
e5a9c27047a4
Updated stammdaten services: allow multiselect filters and check duplicates
Raimund Renkert <raimund.renkert@intevation.de>
parents:
853
diff
changeset
|
199 int limit = Integer.valueOf(params.getFirst("limit")); |
e5a9c27047a4
Updated stammdaten services: allow multiselect filters and check duplicates
Raimund Renkert <raimund.renkert@intevation.de>
parents:
853
diff
changeset
|
200 int end = limit + start; |
e5a9c27047a4
Updated stammdaten services: allow multiselect filters and check duplicates
Raimund Renkert <raimund.renkert@intevation.de>
parents:
853
diff
changeset
|
201 if (limit == 0) { |
e5a9c27047a4
Updated stammdaten services: allow multiselect filters and check duplicates
Raimund Renkert <raimund.renkert@intevation.de>
parents:
853
diff
changeset
|
202 end = orte.size(); |
e5a9c27047a4
Updated stammdaten services: allow multiselect filters and check duplicates
Raimund Renkert <raimund.renkert@intevation.de>
parents:
853
diff
changeset
|
203 } |
e5a9c27047a4
Updated stammdaten services: allow multiselect filters and check duplicates
Raimund Renkert <raimund.renkert@intevation.de>
parents:
853
diff
changeset
|
204 else if (start + limit > orte.size()) { |
e5a9c27047a4
Updated stammdaten services: allow multiselect filters and check duplicates
Raimund Renkert <raimund.renkert@intevation.de>
parents:
853
diff
changeset
|
205 end = orte.size(); |
e5a9c27047a4
Updated stammdaten services: allow multiselect filters and check duplicates
Raimund Renkert <raimund.renkert@intevation.de>
parents:
853
diff
changeset
|
206 } |
e5a9c27047a4
Updated stammdaten services: allow multiselect filters and check duplicates
Raimund Renkert <raimund.renkert@intevation.de>
parents:
853
diff
changeset
|
207 orte = orte.subList(start, end); |
e5a9c27047a4
Updated stammdaten services: allow multiselect filters and check duplicates
Raimund Renkert <raimund.renkert@intevation.de>
parents:
853
diff
changeset
|
208 } |
e5a9c27047a4
Updated stammdaten services: allow multiselect filters and check duplicates
Raimund Renkert <raimund.renkert@intevation.de>
parents:
853
diff
changeset
|
209 for (Ort o : orte) { |
e5a9c27047a4
Updated stammdaten services: allow multiselect filters and check duplicates
Raimund Renkert <raimund.renkert@intevation.de>
parents:
853
diff
changeset
|
210 o.setReadonly( |
e5a9c27047a4
Updated stammdaten services: allow multiselect filters and check duplicates
Raimund Renkert <raimund.renkert@intevation.de>
parents:
853
diff
changeset
|
211 !authorization.isAuthorized( |
e5a9c27047a4
Updated stammdaten services: allow multiselect filters and check duplicates
Raimund Renkert <raimund.renkert@intevation.de>
parents:
853
diff
changeset
|
212 request, |
e5a9c27047a4
Updated stammdaten services: allow multiselect filters and check duplicates
Raimund Renkert <raimund.renkert@intevation.de>
parents:
853
diff
changeset
|
213 o, |
e5a9c27047a4
Updated stammdaten services: allow multiselect filters and check duplicates
Raimund Renkert <raimund.renkert@intevation.de>
parents:
853
diff
changeset
|
214 RequestMethod.POST, |
e5a9c27047a4
Updated stammdaten services: allow multiselect filters and check duplicates
Raimund Renkert <raimund.renkert@intevation.de>
parents:
853
diff
changeset
|
215 Ort.class)); |
e5a9c27047a4
Updated stammdaten services: allow multiselect filters and check duplicates
Raimund Renkert <raimund.renkert@intevation.de>
parents:
853
diff
changeset
|
216 } |
e5a9c27047a4
Updated stammdaten services: allow multiselect filters and check duplicates
Raimund Renkert <raimund.renkert@intevation.de>
parents:
853
diff
changeset
|
217 return new Response(true, 200, orte, size); |
836
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
218 } |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
219 |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
220 /** |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
221 * Get a single SOrt object by id. |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
222 * <p> |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
223 * The id is appended to the URL as a path parameter. |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
224 * <p> |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
225 * Example: http://example.com/location/{id} |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
226 * |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
227 * @return Response object containing a single SOrt. |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
228 */ |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
229 @GET |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
230 @Path("/{id}") |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
231 @Produces(MediaType.APPLICATION_JSON) |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
232 public Response getById( |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
233 @Context HttpHeaders headers, |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
234 @PathParam("id") String id |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
235 ) { |
919
e5a9c27047a4
Updated stammdaten services: allow multiselect filters and check duplicates
Raimund Renkert <raimund.renkert@intevation.de>
parents:
853
diff
changeset
|
236 return repository.getById( |
836
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
237 Ort.class, |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
238 Integer.valueOf(id), |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
239 "stamm"); |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
240 } |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
241 |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
242 /** |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
243 * Create a SOrt object. |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
244 * <p> |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
245 * The new object is embedded in the post data as JSON formatted string. |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
246 * <p> |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
247 * <pre> |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
248 * <code> |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
249 * { |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
250 * "bezeichnung": [string], |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
251 * "beschreibung": [string], |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
252 * "unscharf": [string], |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
253 * "nutsCode": [string], |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
254 * "koordXExtern": [string], |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
255 * "koordYExtern": [string], |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
256 * "hoeheLand": [string], |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
257 * "longitude": [number], |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
258 * "latitude": [number], |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
259 * "staatId": [number], |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
260 * "verwaltungseinheitId": [string], |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
261 * "otyp": [string], |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
262 * "letzteAenderung": [date] |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
263 * } |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
264 * </code> |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
265 * </pre> |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
266 * @return A response object containing the created SOrt. |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
267 */ |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
268 @POST |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
269 @Path("/") |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
270 @Produces(MediaType.APPLICATION_JSON) |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
271 public Response create( |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
272 @Context HttpServletRequest request, |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
273 Ort ort |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
274 ) { |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
275 if (!authorization.isAuthorized( |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
276 request, |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
277 ort, |
837
9dd9a3de7a61
Fixed request methods.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
836
diff
changeset
|
278 RequestMethod.POST, |
836
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
279 Ort.class) |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
280 ) { |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
281 return new Response(false, 699, ort); |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
282 } |
919
e5a9c27047a4
Updated stammdaten services: allow multiselect filters and check duplicates
Raimund Renkert <raimund.renkert@intevation.de>
parents:
853
diff
changeset
|
283 |
1262
9dfb52db6a0f
Make use of the ort factory in ort service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1250
diff
changeset
|
284 ort = ortFactory.completeOrt(ort); |
1237
e49c006b9076
Handle errors in OrtFactory and pass them to the client.
Tom Gottfried <tom@intevation.de>
parents:
1231
diff
changeset
|
285 if (ortFactory.hasErrors()) { |
e49c006b9076
Handle errors in OrtFactory and pass them to the client.
Tom Gottfried <tom@intevation.de>
parents:
1231
diff
changeset
|
286 Violation factoryErrs = new Violation(); |
e49c006b9076
Handle errors in OrtFactory and pass them to the client.
Tom Gottfried <tom@intevation.de>
parents:
1231
diff
changeset
|
287 for (ReportItem err : ortFactory.getErrors()) { |
e49c006b9076
Handle errors in OrtFactory and pass them to the client.
Tom Gottfried <tom@intevation.de>
parents:
1231
diff
changeset
|
288 factoryErrs.addError(err.getKey(), err.getCode()); |
e49c006b9076
Handle errors in OrtFactory and pass them to the client.
Tom Gottfried <tom@intevation.de>
parents:
1231
diff
changeset
|
289 } |
e49c006b9076
Handle errors in OrtFactory and pass them to the client.
Tom Gottfried <tom@intevation.de>
parents:
1231
diff
changeset
|
290 Response response = new Response(false, 604, ort); |
e49c006b9076
Handle errors in OrtFactory and pass them to the client.
Tom Gottfried <tom@intevation.de>
parents:
1231
diff
changeset
|
291 response.setErrors(factoryErrs.getErrors()); |
e49c006b9076
Handle errors in OrtFactory and pass them to the client.
Tom Gottfried <tom@intevation.de>
parents:
1231
diff
changeset
|
292 return response; |
e49c006b9076
Handle errors in OrtFactory and pass them to the client.
Tom Gottfried <tom@intevation.de>
parents:
1231
diff
changeset
|
293 } |
1250
75692dc7077f
Make transformed coordinates available for validation.
Tom Gottfried <tom@intevation.de>
parents:
1237
diff
changeset
|
294 |
75692dc7077f
Make transformed coordinates available for validation.
Tom Gottfried <tom@intevation.de>
parents:
1237
diff
changeset
|
295 Violation violation = validator.validate(ort); |
75692dc7077f
Make transformed coordinates available for validation.
Tom Gottfried <tom@intevation.de>
parents:
1237
diff
changeset
|
296 if (violation.hasErrors()) { |
75692dc7077f
Make transformed coordinates available for validation.
Tom Gottfried <tom@intevation.de>
parents:
1237
diff
changeset
|
297 Response response = new Response(false, 604, ort); |
75692dc7077f
Make transformed coordinates available for validation.
Tom Gottfried <tom@intevation.de>
parents:
1237
diff
changeset
|
298 response.setErrors(violation.getErrors()); |
75692dc7077f
Make transformed coordinates available for validation.
Tom Gottfried <tom@intevation.de>
parents:
1237
diff
changeset
|
299 response.setWarnings(violation.getWarnings()); |
75692dc7077f
Make transformed coordinates available for validation.
Tom Gottfried <tom@intevation.de>
parents:
1237
diff
changeset
|
300 return response; |
75692dc7077f
Make transformed coordinates available for validation.
Tom Gottfried <tom@intevation.de>
parents:
1237
diff
changeset
|
301 } |
75692dc7077f
Make transformed coordinates available for validation.
Tom Gottfried <tom@intevation.de>
parents:
1237
diff
changeset
|
302 |
1262
9dfb52db6a0f
Make use of the ort factory in ort service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1250
diff
changeset
|
303 Response response = new Response(true, 201, ort); |
9dfb52db6a0f
Make use of the ort factory in ort service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1250
diff
changeset
|
304 if (ort.getId() == null) { |
9dfb52db6a0f
Make use of the ort factory in ort service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1250
diff
changeset
|
305 response = repository.create(ort, "stamm"); |
9dfb52db6a0f
Make use of the ort factory in ort service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1250
diff
changeset
|
306 } |
1227
a0968660a4c5
Use reusable validation rule instead of in-service implementation.
Tom Gottfried <tom@intevation.de>
parents:
1214
diff
changeset
|
307 if(violation.hasWarnings()) { |
a0968660a4c5
Use reusable validation rule instead of in-service implementation.
Tom Gottfried <tom@intevation.de>
parents:
1214
diff
changeset
|
308 response.setWarnings(violation.getWarnings()); |
a0968660a4c5
Use reusable validation rule instead of in-service implementation.
Tom Gottfried <tom@intevation.de>
parents:
1214
diff
changeset
|
309 } |
a0968660a4c5
Use reusable validation rule instead of in-service implementation.
Tom Gottfried <tom@intevation.de>
parents:
1214
diff
changeset
|
310 |
a0968660a4c5
Use reusable validation rule instead of in-service implementation.
Tom Gottfried <tom@intevation.de>
parents:
1214
diff
changeset
|
311 return response; |
836
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
312 } |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
313 |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
314 /** |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
315 * Update an existing SOrt object. |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
316 * <p> |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
317 * The object to update should come as JSON formatted string. |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
318 * <pre> |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
319 * <code> |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
320 * { |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
321 * "id": [number], |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
322 * "bezeichnung": [string], |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
323 * "beschreibung": [string], |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
324 * "unscharf": [string], |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
325 * "nutsCode": [string], |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
326 * "koordXExtern": [string], |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
327 * "koordYExtern": [string], |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
328 * "hoeheLand": [number], |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
329 * "longitude": [number], |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
330 * "latitude": [number], |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
331 * "staatId": [number], |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
332 * "verwaltungseinheitId": [string], |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
333 * "otyp": [string], |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
334 * "letzteAenderung": [date] |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
335 * } |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
336 * </code> |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
337 * </pre> |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
338 * |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
339 * @return Response object containing the updated SOrt object. |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
340 */ |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
341 @PUT |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
342 @Path("/{id}") |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
343 @Produces(MediaType.APPLICATION_JSON) |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
344 public Response update( |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
345 @Context HttpServletRequest request, |
1097
186d602e031a
Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents:
956
diff
changeset
|
346 @PathParam("id") String id, |
836
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
347 Ort ort |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
348 ) { |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
349 if (!authorization.isAuthorized( |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
350 request, |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
351 ort, |
837
9dd9a3de7a61
Fixed request methods.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
836
diff
changeset
|
352 RequestMethod.PUT, |
836
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
353 Ort.class) |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
354 ) { |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
355 return new Response(false, 699, ort); |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
356 } |
919
e5a9c27047a4
Updated stammdaten services: allow multiselect filters and check duplicates
Raimund Renkert <raimund.renkert@intevation.de>
parents:
853
diff
changeset
|
357 |
1231
32e27cb8cfef
Use validation rule on update as well.
Tom Gottfried <tom@intevation.de>
parents:
1227
diff
changeset
|
358 ortFactory.transformCoordinates(ort); |
1237
e49c006b9076
Handle errors in OrtFactory and pass them to the client.
Tom Gottfried <tom@intevation.de>
parents:
1231
diff
changeset
|
359 if (ortFactory.hasErrors()) { |
e49c006b9076
Handle errors in OrtFactory and pass them to the client.
Tom Gottfried <tom@intevation.de>
parents:
1231
diff
changeset
|
360 Violation factoryErrs = new Violation(); |
e49c006b9076
Handle errors in OrtFactory and pass them to the client.
Tom Gottfried <tom@intevation.de>
parents:
1231
diff
changeset
|
361 for (ReportItem err : ortFactory.getErrors()) { |
e49c006b9076
Handle errors in OrtFactory and pass them to the client.
Tom Gottfried <tom@intevation.de>
parents:
1231
diff
changeset
|
362 factoryErrs.addError(err.getKey(), err.getCode()); |
e49c006b9076
Handle errors in OrtFactory and pass them to the client.
Tom Gottfried <tom@intevation.de>
parents:
1231
diff
changeset
|
363 } |
e49c006b9076
Handle errors in OrtFactory and pass them to the client.
Tom Gottfried <tom@intevation.de>
parents:
1231
diff
changeset
|
364 Response response = new Response(false, 604, ort); |
e49c006b9076
Handle errors in OrtFactory and pass them to the client.
Tom Gottfried <tom@intevation.de>
parents:
1231
diff
changeset
|
365 response.setErrors(factoryErrs.getErrors()); |
e49c006b9076
Handle errors in OrtFactory and pass them to the client.
Tom Gottfried <tom@intevation.de>
parents:
1231
diff
changeset
|
366 return response; |
e49c006b9076
Handle errors in OrtFactory and pass them to the client.
Tom Gottfried <tom@intevation.de>
parents:
1231
diff
changeset
|
367 } |
1250
75692dc7077f
Make transformed coordinates available for validation.
Tom Gottfried <tom@intevation.de>
parents:
1237
diff
changeset
|
368 |
75692dc7077f
Make transformed coordinates available for validation.
Tom Gottfried <tom@intevation.de>
parents:
1237
diff
changeset
|
369 Violation violation = validator.validate(ort); |
75692dc7077f
Make transformed coordinates available for validation.
Tom Gottfried <tom@intevation.de>
parents:
1237
diff
changeset
|
370 if (violation.hasErrors()) { |
75692dc7077f
Make transformed coordinates available for validation.
Tom Gottfried <tom@intevation.de>
parents:
1237
diff
changeset
|
371 Response response = new Response(false, 604, ort); |
75692dc7077f
Make transformed coordinates available for validation.
Tom Gottfried <tom@intevation.de>
parents:
1237
diff
changeset
|
372 response.setErrors(violation.getErrors()); |
75692dc7077f
Make transformed coordinates available for validation.
Tom Gottfried <tom@intevation.de>
parents:
1237
diff
changeset
|
373 response.setWarnings(violation.getWarnings()); |
75692dc7077f
Make transformed coordinates available for validation.
Tom Gottfried <tom@intevation.de>
parents:
1237
diff
changeset
|
374 return response; |
75692dc7077f
Make transformed coordinates available for validation.
Tom Gottfried <tom@intevation.de>
parents:
1237
diff
changeset
|
375 } |
75692dc7077f
Make transformed coordinates available for validation.
Tom Gottfried <tom@intevation.de>
parents:
1237
diff
changeset
|
376 |
1231
32e27cb8cfef
Use validation rule on update as well.
Tom Gottfried <tom@intevation.de>
parents:
1227
diff
changeset
|
377 Response response = repository.update(ort, "stamm"); |
32e27cb8cfef
Use validation rule on update as well.
Tom Gottfried <tom@intevation.de>
parents:
1227
diff
changeset
|
378 if(violation.hasWarnings()) { |
32e27cb8cfef
Use validation rule on update as well.
Tom Gottfried <tom@intevation.de>
parents:
1227
diff
changeset
|
379 response.setWarnings(violation.getWarnings()); |
32e27cb8cfef
Use validation rule on update as well.
Tom Gottfried <tom@intevation.de>
parents:
1227
diff
changeset
|
380 } |
32e27cb8cfef
Use validation rule on update as well.
Tom Gottfried <tom@intevation.de>
parents:
1227
diff
changeset
|
381 |
32e27cb8cfef
Use validation rule on update as well.
Tom Gottfried <tom@intevation.de>
parents:
1227
diff
changeset
|
382 return response; |
836
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
383 } |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
384 |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
385 /** |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
386 * Delete an existing SOrt object by id. |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
387 * <p> |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
388 * The id is appended to the URL as a path parameter. |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
389 * <p> |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
390 * Example: http://example.com/location/{id} |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
391 * |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
392 * @return Response object. |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
393 */ |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
394 @DELETE |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
395 @Path("/{id}") |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
396 @Produces(MediaType.APPLICATION_JSON) |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
397 public Response delete( |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
398 @Context HttpServletRequest request, |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
399 @PathParam("id") String id |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
400 ) { |
956
539eb174bf23
Avoid NPE if requested object does not exist.
Tom Gottfried <tom@intevation.de>
parents:
919
diff
changeset
|
401 Response response = |
539eb174bf23
Avoid NPE if requested object does not exist.
Tom Gottfried <tom@intevation.de>
parents:
919
diff
changeset
|
402 repository.getById(Ort.class, Integer.valueOf(id), "stamm"); |
539eb174bf23
Avoid NPE if requested object does not exist.
Tom Gottfried <tom@intevation.de>
parents:
919
diff
changeset
|
403 if (!response.getSuccess()) { |
539eb174bf23
Avoid NPE if requested object does not exist.
Tom Gottfried <tom@intevation.de>
parents:
919
diff
changeset
|
404 return response; |
539eb174bf23
Avoid NPE if requested object does not exist.
Tom Gottfried <tom@intevation.de>
parents:
919
diff
changeset
|
405 } |
539eb174bf23
Avoid NPE if requested object does not exist.
Tom Gottfried <tom@intevation.de>
parents:
919
diff
changeset
|
406 Ort ort = (Ort)response.getData(); |
836
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
407 if (!authorization.isAuthorized( |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
408 request, |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
409 ort, |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
410 RequestMethod.DELETE, |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
411 Ort.class) |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
412 ) { |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
413 return new Response(false, 699, ort); |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
414 } |
956
539eb174bf23
Avoid NPE if requested object does not exist.
Tom Gottfried <tom@intevation.de>
parents:
919
diff
changeset
|
415 |
919
e5a9c27047a4
Updated stammdaten services: allow multiselect filters and check duplicates
Raimund Renkert <raimund.renkert@intevation.de>
parents:
853
diff
changeset
|
416 return repository.delete(ort, "stamm"); |
836
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
417 } |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
418 } |