Mercurial > lada > lada-server
annotate src/main/java/de/intevation/lada/rest/stamm/MessprogrammKategorieService.java @ 1312:2b4cd062f6a1 release-2.5
load complete messprogrammkategorieStore
author | Evi Huber <ehuber@bfs.de> |
---|---|
date | Wed, 15 Mar 2017 10:01:24 +0100 |
parents | 186d602e031a |
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:
836
diff
changeset
|
10 import java.util.List; |
670f58112734
Allow paging for editable stammdaten and set readonly attribute.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
836
diff
changeset
|
11 |
836
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
12 import javax.enterprise.context.RequestScoped; |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
13 import javax.inject.Inject; |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
14 import javax.servlet.http.HttpServletRequest; |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
15 import javax.ws.rs.DELETE; |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
16 import javax.ws.rs.GET; |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
17 import javax.ws.rs.POST; |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
18 import javax.ws.rs.PUT; |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
19 import javax.ws.rs.Path; |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
20 import javax.ws.rs.PathParam; |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
21 import javax.ws.rs.Produces; |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
22 import javax.ws.rs.core.Context; |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
23 import javax.ws.rs.core.HttpHeaders; |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
24 import javax.ws.rs.core.MediaType; |
843
670f58112734
Allow paging for editable stammdaten and set readonly attribute.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
836
diff
changeset
|
25 import javax.ws.rs.core.MultivaluedMap; |
836
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
26 import javax.ws.rs.core.UriInfo; |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
27 |
1097
186d602e031a
Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents:
939
diff
changeset
|
28 import de.intevation.lada.model.stammdaten.Filter; |
186d602e031a
Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents:
939
diff
changeset
|
29 import de.intevation.lada.model.stammdaten.MessprogrammKategorie; |
836
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
30 import de.intevation.lada.util.annotation.AuthorizationConfig; |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
31 import de.intevation.lada.util.annotation.RepositoryConfig; |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
32 import de.intevation.lada.util.auth.Authorization; |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
33 import de.intevation.lada.util.auth.AuthorizationType; |
848
c2725534f08b
Services no use the database based query filter.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
843
diff
changeset
|
34 import de.intevation.lada.util.data.QueryBuilder; |
836
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
35 import de.intevation.lada.util.data.Repository; |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
36 import de.intevation.lada.util.data.RepositoryType; |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
37 import de.intevation.lada.util.rest.RequestMethod; |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
38 import de.intevation.lada.util.rest.Response; |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
39 |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
40 /** |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
41 * REST service for DatensatzErzeuger objects. |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
42 * <p> |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
43 * 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
|
44 * 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
|
45 * <pre> |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
46 * <code> |
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 * "success": [boolean]; |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
49 * "message": [string], |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
50 * "data":[{ |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
51 * "id": [number], |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
52 * "bezeichnung": [string], |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
53 * "daErzeugerId": [string], |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
54 * "letzteAenderung": [timestamp], |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
55 * "mstId": [string], |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
56 * "netzbetreiberId": [string] |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
57 * }], |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
58 * "errors": [object], |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
59 * "warnings": [object], |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
60 * "readonly": [boolean], |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
61 * "totalCount": [number] |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
62 * } |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
63 * </code> |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
64 * </pre> |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
65 * |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
66 * @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
|
67 */ |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
68 @Path("rest/messprogrammkategorie") |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
69 @RequestScoped |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
70 public class MessprogrammKategorieService { |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
71 |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
72 /** |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
73 * The data repository granting read access. |
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 @Inject |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
76 @RepositoryConfig(type=RepositoryType.RW) |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
77 private Repository repository; |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
78 |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
79 @Inject |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
80 @AuthorizationConfig(type=AuthorizationType.HEADER) |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
81 private Authorization authorization; |
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 /** |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
84 * Get all Datenbasis objects. |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
85 * <p> |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
86 * Example: http://example.com/messprogrammkategorie |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
87 * |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
88 * @return Response object containing all objects. |
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 @GET |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
91 @Path("/") |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
92 @Produces(MediaType.APPLICATION_JSON) |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
93 public Response get( |
843
670f58112734
Allow paging for editable stammdaten and set readonly attribute.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
836
diff
changeset
|
94 @Context HttpServletRequest request, |
836
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
95 @Context UriInfo info |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
96 ) { |
843
670f58112734
Allow paging for editable stammdaten and set readonly attribute.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
836
diff
changeset
|
97 MultivaluedMap<String, String> params = info.getQueryParameters(); |
848
c2725534f08b
Services no use the database based query filter.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
843
diff
changeset
|
98 List<MessprogrammKategorie> kategorie; |
c2725534f08b
Services no use the database based query filter.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
843
diff
changeset
|
99 if (params.containsKey("qid")) { |
c2725534f08b
Services no use the database based query filter.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
843
diff
changeset
|
100 Integer id = null; |
c2725534f08b
Services no use the database based query filter.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
843
diff
changeset
|
101 try { |
c2725534f08b
Services no use the database based query filter.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
843
diff
changeset
|
102 id = Integer.valueOf(params.getFirst("qid")); |
c2725534f08b
Services no use the database based query filter.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
843
diff
changeset
|
103 } |
c2725534f08b
Services no use the database based query filter.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
843
diff
changeset
|
104 catch (NumberFormatException e) { |
c2725534f08b
Services no use the database based query filter.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
843
diff
changeset
|
105 return new Response(false, 603, "Not a valid filter id"); |
c2725534f08b
Services no use the database based query filter.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
843
diff
changeset
|
106 } |
c2725534f08b
Services no use the database based query filter.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
843
diff
changeset
|
107 QueryBuilder<Filter> fBuilder = new QueryBuilder<Filter>( |
c2725534f08b
Services no use the database based query filter.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
843
diff
changeset
|
108 repository.entityManager("stamm"), |
c2725534f08b
Services no use the database based query filter.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
843
diff
changeset
|
109 Filter.class |
c2725534f08b
Services no use the database based query filter.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
843
diff
changeset
|
110 ); |
c2725534f08b
Services no use the database based query filter.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
843
diff
changeset
|
111 fBuilder.and("query", id); |
c2725534f08b
Services no use the database based query filter.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
843
diff
changeset
|
112 List<Filter> filters = repository.filterPlain(fBuilder.getQuery(), "stamm"); |
c2725534f08b
Services no use the database based query filter.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
843
diff
changeset
|
113 QueryBuilder<MessprogrammKategorie> mBuilder = |
c2725534f08b
Services no use the database based query filter.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
843
diff
changeset
|
114 new QueryBuilder<MessprogrammKategorie>( |
c2725534f08b
Services no use the database based query filter.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
843
diff
changeset
|
115 repository.entityManager("stamm"), |
c2725534f08b
Services no use the database based query filter.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
843
diff
changeset
|
116 MessprogrammKategorie.class |
c2725534f08b
Services no use the database based query filter.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
843
diff
changeset
|
117 ); |
c2725534f08b
Services no use the database based query filter.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
843
diff
changeset
|
118 for (Filter filter: filters) { |
c2725534f08b
Services no use the database based query filter.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
843
diff
changeset
|
119 String param = params.get(filter.getDataIndex()).get(0); |
c2725534f08b
Services no use the database based query filter.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
843
diff
changeset
|
120 if (param == null || param.isEmpty()) { |
c2725534f08b
Services no use the database based query filter.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
843
diff
changeset
|
121 continue; |
c2725534f08b
Services no use the database based query filter.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
843
diff
changeset
|
122 } |
919
e5a9c27047a4
Updated stammdaten services: allow multiselect filters and check duplicates
Raimund Renkert <raimund.renkert@intevation.de>
parents:
848
diff
changeset
|
123 if (filter.getMultiselect()) { |
e5a9c27047a4
Updated stammdaten services: allow multiselect filters and check duplicates
Raimund Renkert <raimund.renkert@intevation.de>
parents:
848
diff
changeset
|
124 param = param.trim(); |
e5a9c27047a4
Updated stammdaten services: allow multiselect filters and check duplicates
Raimund Renkert <raimund.renkert@intevation.de>
parents:
848
diff
changeset
|
125 String[] parts = param.split(","); |
e5a9c27047a4
Updated stammdaten services: allow multiselect filters and check duplicates
Raimund Renkert <raimund.renkert@intevation.de>
parents:
848
diff
changeset
|
126 for (String part: parts) { |
e5a9c27047a4
Updated stammdaten services: allow multiselect filters and check duplicates
Raimund Renkert <raimund.renkert@intevation.de>
parents:
848
diff
changeset
|
127 mBuilder.or(filter.getDataIndex(), part); |
e5a9c27047a4
Updated stammdaten services: allow multiselect filters and check duplicates
Raimund Renkert <raimund.renkert@intevation.de>
parents:
848
diff
changeset
|
128 } |
e5a9c27047a4
Updated stammdaten services: allow multiselect filters and check duplicates
Raimund Renkert <raimund.renkert@intevation.de>
parents:
848
diff
changeset
|
129 } |
e5a9c27047a4
Updated stammdaten services: allow multiselect filters and check duplicates
Raimund Renkert <raimund.renkert@intevation.de>
parents:
848
diff
changeset
|
130 else { |
e5a9c27047a4
Updated stammdaten services: allow multiselect filters and check duplicates
Raimund Renkert <raimund.renkert@intevation.de>
parents:
848
diff
changeset
|
131 mBuilder.or(filter.getDataIndex(), param); |
e5a9c27047a4
Updated stammdaten services: allow multiselect filters and check duplicates
Raimund Renkert <raimund.renkert@intevation.de>
parents:
848
diff
changeset
|
132 } |
848
c2725534f08b
Services no use the database based query filter.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
843
diff
changeset
|
133 } |
c2725534f08b
Services no use the database based query filter.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
843
diff
changeset
|
134 |
c2725534f08b
Services no use the database based query filter.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
843
diff
changeset
|
135 kategorie = repository.filterPlain(mBuilder.getQuery(), "stamm"); |
c2725534f08b
Services no use the database based query filter.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
843
diff
changeset
|
136 } |
c2725534f08b
Services no use the database based query filter.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
843
diff
changeset
|
137 else { |
c2725534f08b
Services no use the database based query filter.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
843
diff
changeset
|
138 kategorie = repository.getAllPlain(MessprogrammKategorie.class, "stamm"); |
c2725534f08b
Services no use the database based query filter.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
843
diff
changeset
|
139 } |
843
670f58112734
Allow paging for editable stammdaten and set readonly attribute.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
836
diff
changeset
|
140 int size = kategorie.size(); |
1312
2b4cd062f6a1
load complete messprogrammkategorieStore
Evi Huber <ehuber@bfs.de>
parents:
1097
diff
changeset
|
141 if (params.containsKey("qid")) { |
2b4cd062f6a1
load complete messprogrammkategorieStore
Evi Huber <ehuber@bfs.de>
parents:
1097
diff
changeset
|
142 if (params.containsKey("start") && params.containsKey("limit")) { |
2b4cd062f6a1
load complete messprogrammkategorieStore
Evi Huber <ehuber@bfs.de>
parents:
1097
diff
changeset
|
143 int start = Integer.valueOf(params.getFirst("start")); |
2b4cd062f6a1
load complete messprogrammkategorieStore
Evi Huber <ehuber@bfs.de>
parents:
1097
diff
changeset
|
144 int limit = Integer.valueOf(params.getFirst("limit")); |
2b4cd062f6a1
load complete messprogrammkategorieStore
Evi Huber <ehuber@bfs.de>
parents:
1097
diff
changeset
|
145 int end = limit + start; |
2b4cd062f6a1
load complete messprogrammkategorieStore
Evi Huber <ehuber@bfs.de>
parents:
1097
diff
changeset
|
146 if (start + limit > kategorie.size()) { |
2b4cd062f6a1
load complete messprogrammkategorieStore
Evi Huber <ehuber@bfs.de>
parents:
1097
diff
changeset
|
147 end = kategorie.size(); |
2b4cd062f6a1
load complete messprogrammkategorieStore
Evi Huber <ehuber@bfs.de>
parents:
1097
diff
changeset
|
148 } |
2b4cd062f6a1
load complete messprogrammkategorieStore
Evi Huber <ehuber@bfs.de>
parents:
1097
diff
changeset
|
149 kategorie = kategorie.subList(start, end); |
843
670f58112734
Allow paging for editable stammdaten and set readonly attribute.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
836
diff
changeset
|
150 } |
670f58112734
Allow paging for editable stammdaten and set readonly attribute.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
836
diff
changeset
|
151 } |
670f58112734
Allow paging for editable stammdaten and set readonly attribute.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
836
diff
changeset
|
152 |
670f58112734
Allow paging for editable stammdaten and set readonly attribute.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
836
diff
changeset
|
153 for (MessprogrammKategorie mk : kategorie) { |
670f58112734
Allow paging for editable stammdaten and set readonly attribute.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
836
diff
changeset
|
154 mk.setReadonly( |
670f58112734
Allow paging for editable stammdaten and set readonly attribute.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
836
diff
changeset
|
155 !authorization.isAuthorized( |
670f58112734
Allow paging for editable stammdaten and set readonly attribute.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
836
diff
changeset
|
156 request, |
670f58112734
Allow paging for editable stammdaten and set readonly attribute.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
836
diff
changeset
|
157 mk, |
670f58112734
Allow paging for editable stammdaten and set readonly attribute.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
836
diff
changeset
|
158 RequestMethod.POST, |
670f58112734
Allow paging for editable stammdaten and set readonly attribute.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
836
diff
changeset
|
159 MessprogrammKategorie.class)); |
670f58112734
Allow paging for editable stammdaten and set readonly attribute.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
836
diff
changeset
|
160 } |
670f58112734
Allow paging for editable stammdaten and set readonly attribute.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
836
diff
changeset
|
161 return new Response(true, 200, kategorie, size); |
836
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
162 } |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
163 |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
164 /** |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
165 * Get a single object by id. |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
166 * <p> |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
167 * 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
|
168 * <p> |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
169 * Example: http://example.com/messprogrammkategorie/{id} |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
170 * |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
171 * @return Response object containing a single object. |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
172 */ |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
173 @GET |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
174 @Path("/{id}") |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
175 @Produces(MediaType.APPLICATION_JSON) |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
176 public Response getById( |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
177 @Context HttpHeaders headers, |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
178 @PathParam("id") String id |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
179 ) { |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
180 return repository.getById( |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
181 MessprogrammKategorie.class, |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
182 Integer.valueOf(id), |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
183 "stamm"); |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
184 } |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
185 |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
186 @POST |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
187 @Path("/") |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
188 @Produces(MediaType.APPLICATION_JSON) |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
189 public Response create( |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
190 @Context HttpServletRequest request, |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
191 MessprogrammKategorie kategorie |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
192 ) { |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
193 if (!authorization.isAuthorized( |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
194 request, |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
195 kategorie, |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
196 RequestMethod.POST, |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
197 MessprogrammKategorie.class) |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
198 ) { |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
199 return new Response(false, 699, kategorie); |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
200 } |
919
e5a9c27047a4
Updated stammdaten services: allow multiselect filters and check duplicates
Raimund Renkert <raimund.renkert@intevation.de>
parents:
848
diff
changeset
|
201 QueryBuilder<MessprogrammKategorie> builder = |
e5a9c27047a4
Updated stammdaten services: allow multiselect filters and check duplicates
Raimund Renkert <raimund.renkert@intevation.de>
parents:
848
diff
changeset
|
202 new QueryBuilder<MessprogrammKategorie>( |
e5a9c27047a4
Updated stammdaten services: allow multiselect filters and check duplicates
Raimund Renkert <raimund.renkert@intevation.de>
parents:
848
diff
changeset
|
203 repository.entityManager("stamm"), |
e5a9c27047a4
Updated stammdaten services: allow multiselect filters and check duplicates
Raimund Renkert <raimund.renkert@intevation.de>
parents:
848
diff
changeset
|
204 MessprogrammKategorie.class |
e5a9c27047a4
Updated stammdaten services: allow multiselect filters and check duplicates
Raimund Renkert <raimund.renkert@intevation.de>
parents:
848
diff
changeset
|
205 ); |
1097
186d602e031a
Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents:
939
diff
changeset
|
206 builder.and("code", kategorie.getCode()); |
919
e5a9c27047a4
Updated stammdaten services: allow multiselect filters and check duplicates
Raimund Renkert <raimund.renkert@intevation.de>
parents:
848
diff
changeset
|
207 builder.and("netzbetreiberId", kategorie.getNetzbetreiberId()); |
836
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
208 |
919
e5a9c27047a4
Updated stammdaten services: allow multiselect filters and check duplicates
Raimund Renkert <raimund.renkert@intevation.de>
parents:
848
diff
changeset
|
209 List<MessprogrammKategorie> kategorien = |
e5a9c27047a4
Updated stammdaten services: allow multiselect filters and check duplicates
Raimund Renkert <raimund.renkert@intevation.de>
parents:
848
diff
changeset
|
210 repository.filterPlain(builder.getQuery(), "stamm"); |
e5a9c27047a4
Updated stammdaten services: allow multiselect filters and check duplicates
Raimund Renkert <raimund.renkert@intevation.de>
parents:
848
diff
changeset
|
211 if (kategorien.isEmpty() || |
e5a9c27047a4
Updated stammdaten services: allow multiselect filters and check duplicates
Raimund Renkert <raimund.renkert@intevation.de>
parents:
848
diff
changeset
|
212 kategorien.get(0).getId() == kategorie.getId()) { |
e5a9c27047a4
Updated stammdaten services: allow multiselect filters and check duplicates
Raimund Renkert <raimund.renkert@intevation.de>
parents:
848
diff
changeset
|
213 return repository.create(kategorie, "stamm"); |
e5a9c27047a4
Updated stammdaten services: allow multiselect filters and check duplicates
Raimund Renkert <raimund.renkert@intevation.de>
parents:
848
diff
changeset
|
214 } |
e5a9c27047a4
Updated stammdaten services: allow multiselect filters and check duplicates
Raimund Renkert <raimund.renkert@intevation.de>
parents:
848
diff
changeset
|
215 return new Response(false, 672, null); |
836
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
216 } |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
217 |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
218 @PUT |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
219 @Path("/{id}") |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
220 @Produces(MediaType.APPLICATION_JSON) |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
221 public Response update( |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
222 @Context HttpServletRequest request, |
1097
186d602e031a
Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents:
939
diff
changeset
|
223 @PathParam("id") String id, |
836
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
224 MessprogrammKategorie kategorie |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
225 ) { |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
226 if (!authorization.isAuthorized( |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
227 request, |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
228 kategorie, |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
229 RequestMethod.PUT, |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
230 MessprogrammKategorie.class) |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
231 ) { |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
232 return new Response(false, 699, kategorie); |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
233 } |
939
e134c13c4209
Removed check for duplicates in stammdatenservices (method: PUT).
Raimund Renkert <raimund.renkert@intevation.de>
parents:
936
diff
changeset
|
234 return repository.update(kategorie, "stamm"); |
836
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
235 } |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
236 |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
237 @DELETE |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
238 @Path("/{id}") |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
239 @Produces(MediaType.APPLICATION_JSON) |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
240 public Response delete( |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
241 @Context HttpServletRequest request, |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
242 @PathParam("id") String id |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
243 ) { |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
244 MessprogrammKategorie kategorie = repository.getByIdPlain( |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
245 MessprogrammKategorie.class, Integer.valueOf(id), "stamm"); |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
246 if (kategorie == null || |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
247 !authorization.isAuthorized( |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
248 request, |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
249 kategorie, |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
250 RequestMethod.DELETE, |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
251 MessprogrammKategorie.class |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
252 ) |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
253 ) { |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
254 return new Response(false, 699, null); |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
255 } |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
256 return repository.delete(kategorie, "stamm"); |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
257 } |
313bd1d227f1
Added services for stammdaten and updated models.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
258 } |