Mercurial > lada > lada-server
annotate src/main/java/de/intevation/lada/rest/ProbeService.java @ 451:89a5dbeb5bd6
Comments.
author | Raimund Renkert <raimund.renkert@intevation.de> |
---|---|
date | Wed, 11 Feb 2015 13:03:07 +0100 |
parents | 808ea2091c1d |
children | 01d6da858394 |
rev | line source |
---|---|
441
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
1 /* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
2 * Software engineering by Intevation GmbH |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
3 * |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
4 * This file is Free Software under the GNU GPL (v>=3) |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
5 * and comes with ABSOLUTELY NO WARRANTY! Check out |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
6 * the documentation coming with IMIS-Labordaten-Application for details. |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
7 */ |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
8 package de.intevation.lada.rest; |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
9 |
450
808ea2091c1d
Updated repositoy structure and added probe services.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
441
diff
changeset
|
10 import java.util.List; |
808ea2091c1d
Updated repositoy structure and added probe services.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
441
diff
changeset
|
11 |
441
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
12 import javax.enterprise.context.RequestScoped; |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
13 import javax.inject.Inject; |
450
808ea2091c1d
Updated repositoy structure and added probe services.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
441
diff
changeset
|
14 import javax.ws.rs.DELETE; |
441
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
15 import javax.ws.rs.GET; |
450
808ea2091c1d
Updated repositoy structure and added probe services.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
441
diff
changeset
|
16 import javax.ws.rs.POST; |
808ea2091c1d
Updated repositoy structure and added probe services.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
441
diff
changeset
|
17 import javax.ws.rs.PUT; |
441
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
18 import javax.ws.rs.Path; |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
19 import javax.ws.rs.PathParam; |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
20 import javax.ws.rs.Produces; |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
21 import javax.ws.rs.core.Context; |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
22 import javax.ws.rs.core.HttpHeaders; |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
23 import javax.ws.rs.core.MediaType; |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
24 |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
25 import org.apache.log4j.Logger; |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
26 |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
27 import de.intevation.lada.model.land.LProbe; |
450
808ea2091c1d
Updated repositoy structure and added probe services.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
441
diff
changeset
|
28 import de.intevation.lada.model.land.ProbeTranslation; |
441
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
29 import de.intevation.lada.util.annotation.AuthenticationConfig; |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
30 import de.intevation.lada.util.annotation.AuthorizationConfig; |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
31 import de.intevation.lada.util.annotation.RepositoryConfig; |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
32 import de.intevation.lada.util.auth.Authentication; |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
33 import de.intevation.lada.util.auth.AuthenticationType; |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
34 import de.intevation.lada.util.auth.Authorization; |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
35 import de.intevation.lada.util.auth.AuthorizationType; |
450
808ea2091c1d
Updated repositoy structure and added probe services.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
441
diff
changeset
|
36 import de.intevation.lada.util.data.QueryBuilder; |
441
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
37 import de.intevation.lada.util.data.Repository; |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
38 import de.intevation.lada.util.data.RepositoryType; |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
39 import de.intevation.lada.util.rest.Response; |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
40 |
451 | 41 |
42 /** | |
43 * This class produces a RESTful service to interact with probe objects. | |
44 * | |
45 * @author <a href="mailto:rrenkert@intevation.de">Raimund Renkert</a> | |
46 */ | |
441
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
47 @Path("probe") |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
48 @RequestScoped |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
49 public class ProbeService { |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
50 |
451 | 51 /* The logger used in this class.*/ |
441
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
52 @Inject |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
53 private Logger logger; |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
54 |
451 | 55 /* The data repository granting read/write access.*/ |
441
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
56 @Inject |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
57 @RepositoryConfig(type=RepositoryType.RW) |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
58 private Repository defaultRepo; |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
59 |
451 | 60 /* The authentication module.*/ |
441
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
61 @Inject |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
62 @AuthenticationConfig(type=AuthenticationType.NONE) |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
63 private Authentication authentication; |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
64 |
451 | 65 /* The authorization module.*/ |
441
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
66 @Inject |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
67 @AuthorizationConfig(type=AuthorizationType.NONE) |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
68 private Authorization authorization; |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
69 |
451 | 70 /** |
71 * Get all probe objects. | |
72 * | |
73 * @return Response object containing all probe objects. | |
74 */ | |
441
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
75 @GET |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
76 @Path("/") |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
77 @Produces("application/json") |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
78 public Response get(@Context HttpHeaders headers) { |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
79 if (!authentication.isAuthenticated(headers)) { |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
80 logger.debug("User is not authenticated!"); |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
81 return new Response(false, 699, null); |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
82 } |
451 | 83 return defaultRepo.getAll(LProbe.class, "land"); |
441
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
84 } |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
85 |
451 | 86 /** |
87 * Get a probe object by id. | |
88 * | |
89 * @return Response object containing a single probe. | |
90 */ | |
441
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
91 @GET |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
92 @Path("/{id}") |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
93 @Produces(MediaType.APPLICATION_JSON) |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
94 public Response getById( |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
95 @Context HttpHeaders headers, |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
96 @PathParam("id") String id |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
97 ) { |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
98 if (!authentication.isAuthenticated(headers)) { |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
99 logger.debug("User is not authenticated!"); |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
100 return new Response(false, 699, null); |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
101 } |
451 | 102 return defaultRepo.getById(LProbe.class, Integer.valueOf(id), "land"); |
441
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
103 } |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
104 |
451 | 105 /** |
106 * Create a new probe object. | |
107 * | |
108 * @return Response object containing the new probe object. | |
109 */ | |
450
808ea2091c1d
Updated repositoy structure and added probe services.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
441
diff
changeset
|
110 @POST |
808ea2091c1d
Updated repositoy structure and added probe services.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
441
diff
changeset
|
111 @Path("/") |
808ea2091c1d
Updated repositoy structure and added probe services.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
441
diff
changeset
|
112 @Produces(MediaType.APPLICATION_JSON) |
808ea2091c1d
Updated repositoy structure and added probe services.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
441
diff
changeset
|
113 public Response create(@Context HttpHeaders headers, LProbe probe) { |
808ea2091c1d
Updated repositoy structure and added probe services.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
441
diff
changeset
|
114 if (!authentication.isAuthenticated(headers)) { |
808ea2091c1d
Updated repositoy structure and added probe services.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
441
diff
changeset
|
115 return new Response(false, 699, null); |
808ea2091c1d
Updated repositoy structure and added probe services.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
441
diff
changeset
|
116 } |
808ea2091c1d
Updated repositoy structure and added probe services.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
441
diff
changeset
|
117 /* Persist the new probe object*/ |
808ea2091c1d
Updated repositoy structure and added probe services.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
441
diff
changeset
|
118 Response response = defaultRepo.create(probe, "land"); |
808ea2091c1d
Updated repositoy structure and added probe services.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
441
diff
changeset
|
119 LProbe ret = (LProbe)response.getData(); |
808ea2091c1d
Updated repositoy structure and added probe services.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
441
diff
changeset
|
120 /* Create and persist a new probe translation object*/ |
808ea2091c1d
Updated repositoy structure and added probe services.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
441
diff
changeset
|
121 ProbeTranslation trans = new ProbeTranslation(); |
808ea2091c1d
Updated repositoy structure and added probe services.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
441
diff
changeset
|
122 trans.setProbeId(ret); |
808ea2091c1d
Updated repositoy structure and added probe services.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
441
diff
changeset
|
123 defaultRepo.create(trans, "land"); |
808ea2091c1d
Updated repositoy structure and added probe services.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
441
diff
changeset
|
124 /* Get and return the new probe object*/ |
808ea2091c1d
Updated repositoy structure and added probe services.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
441
diff
changeset
|
125 Response created = |
808ea2091c1d
Updated repositoy structure and added probe services.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
441
diff
changeset
|
126 defaultRepo.getById(LProbe.class, ret.getId(), "land"); |
808ea2091c1d
Updated repositoy structure and added probe services.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
441
diff
changeset
|
127 return new Response(true, 200, created.getData()); |
808ea2091c1d
Updated repositoy structure and added probe services.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
441
diff
changeset
|
128 } |
808ea2091c1d
Updated repositoy structure and added probe services.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
441
diff
changeset
|
129 |
808ea2091c1d
Updated repositoy structure and added probe services.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
441
diff
changeset
|
130 /** |
808ea2091c1d
Updated repositoy structure and added probe services.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
441
diff
changeset
|
131 * Update an existing probe object. |
808ea2091c1d
Updated repositoy structure and added probe services.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
441
diff
changeset
|
132 * |
808ea2091c1d
Updated repositoy structure and added probe services.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
441
diff
changeset
|
133 * @return Response object containing the updated probe object. |
808ea2091c1d
Updated repositoy structure and added probe services.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
441
diff
changeset
|
134 */ |
808ea2091c1d
Updated repositoy structure and added probe services.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
441
diff
changeset
|
135 @PUT |
808ea2091c1d
Updated repositoy structure and added probe services.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
441
diff
changeset
|
136 @Path("/") |
808ea2091c1d
Updated repositoy structure and added probe services.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
441
diff
changeset
|
137 @Produces(MediaType.APPLICATION_JSON) |
808ea2091c1d
Updated repositoy structure and added probe services.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
441
diff
changeset
|
138 public Response update(@Context HttpHeaders headers, LProbe probe) { |
808ea2091c1d
Updated repositoy structure and added probe services.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
441
diff
changeset
|
139 if (!authentication.isAuthenticated(headers)) { |
808ea2091c1d
Updated repositoy structure and added probe services.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
441
diff
changeset
|
140 logger.debug("User is not authenticated!"); |
808ea2091c1d
Updated repositoy structure and added probe services.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
441
diff
changeset
|
141 return new Response(false, 699, null); |
808ea2091c1d
Updated repositoy structure and added probe services.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
441
diff
changeset
|
142 } |
808ea2091c1d
Updated repositoy structure and added probe services.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
441
diff
changeset
|
143 Response response = defaultRepo.update(probe, "land"); |
808ea2091c1d
Updated repositoy structure and added probe services.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
441
diff
changeset
|
144 Response updated = defaultRepo.getById( |
808ea2091c1d
Updated repositoy structure and added probe services.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
441
diff
changeset
|
145 LProbe.class, |
808ea2091c1d
Updated repositoy structure and added probe services.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
441
diff
changeset
|
146 ((LProbe)response.getData()).getId(), "land"); |
808ea2091c1d
Updated repositoy structure and added probe services.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
441
diff
changeset
|
147 return updated; |
808ea2091c1d
Updated repositoy structure and added probe services.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
441
diff
changeset
|
148 } |
808ea2091c1d
Updated repositoy structure and added probe services.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
441
diff
changeset
|
149 |
808ea2091c1d
Updated repositoy structure and added probe services.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
441
diff
changeset
|
150 /** |
808ea2091c1d
Updated repositoy structure and added probe services.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
441
diff
changeset
|
151 * Delete an existing probe object by id. |
808ea2091c1d
Updated repositoy structure and added probe services.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
441
diff
changeset
|
152 * |
808ea2091c1d
Updated repositoy structure and added probe services.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
441
diff
changeset
|
153 * @return Response object. |
808ea2091c1d
Updated repositoy structure and added probe services.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
441
diff
changeset
|
154 */ |
808ea2091c1d
Updated repositoy structure and added probe services.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
441
diff
changeset
|
155 @DELETE |
808ea2091c1d
Updated repositoy structure and added probe services.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
441
diff
changeset
|
156 @Path("/{id}") |
808ea2091c1d
Updated repositoy structure and added probe services.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
441
diff
changeset
|
157 @Produces(MediaType.APPLICATION_JSON) |
808ea2091c1d
Updated repositoy structure and added probe services.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
441
diff
changeset
|
158 public Response delete( |
808ea2091c1d
Updated repositoy structure and added probe services.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
441
diff
changeset
|
159 @Context HttpHeaders headers, |
808ea2091c1d
Updated repositoy structure and added probe services.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
441
diff
changeset
|
160 @PathParam("id") String id |
808ea2091c1d
Updated repositoy structure and added probe services.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
441
diff
changeset
|
161 ) { |
808ea2091c1d
Updated repositoy structure and added probe services.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
441
diff
changeset
|
162 if (!authentication.isAuthenticated(headers)) { |
808ea2091c1d
Updated repositoy structure and added probe services.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
441
diff
changeset
|
163 logger.debug("User is not authenticated!"); |
808ea2091c1d
Updated repositoy structure and added probe services.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
441
diff
changeset
|
164 return new Response(false, 699, null); |
808ea2091c1d
Updated repositoy structure and added probe services.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
441
diff
changeset
|
165 } |
808ea2091c1d
Updated repositoy structure and added probe services.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
441
diff
changeset
|
166 /* Get the probe object by id*/ |
808ea2091c1d
Updated repositoy structure and added probe services.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
441
diff
changeset
|
167 Response probe = |
808ea2091c1d
Updated repositoy structure and added probe services.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
441
diff
changeset
|
168 defaultRepo.getById(LProbe.class, Integer.valueOf(id), "land"); |
808ea2091c1d
Updated repositoy structure and added probe services.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
441
diff
changeset
|
169 LProbe probeObj = (LProbe)probe.getData(); |
808ea2091c1d
Updated repositoy structure and added probe services.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
441
diff
changeset
|
170 /* Create a query and request the probetranslation object for the |
808ea2091c1d
Updated repositoy structure and added probe services.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
441
diff
changeset
|
171 * probe*/ |
808ea2091c1d
Updated repositoy structure and added probe services.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
441
diff
changeset
|
172 QueryBuilder<ProbeTranslation> builder = |
808ea2091c1d
Updated repositoy structure and added probe services.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
441
diff
changeset
|
173 new QueryBuilder<ProbeTranslation>( |
808ea2091c1d
Updated repositoy structure and added probe services.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
441
diff
changeset
|
174 defaultRepo.entityManager("land"), ProbeTranslation.class); |
808ea2091c1d
Updated repositoy structure and added probe services.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
441
diff
changeset
|
175 builder.and("probe", probeObj.getId()); |
808ea2091c1d
Updated repositoy structure and added probe services.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
441
diff
changeset
|
176 Response probeTrans = defaultRepo.filter(builder.getQuery(), "land"); |
808ea2091c1d
Updated repositoy structure and added probe services.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
441
diff
changeset
|
177 @SuppressWarnings("unchecked") |
808ea2091c1d
Updated repositoy structure and added probe services.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
441
diff
changeset
|
178 ProbeTranslation probeTransObj = ((List<ProbeTranslation>)probeTrans.getData()).get(0); |
808ea2091c1d
Updated repositoy structure and added probe services.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
441
diff
changeset
|
179 /* Delete the probe translation object*/ |
808ea2091c1d
Updated repositoy structure and added probe services.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
441
diff
changeset
|
180 defaultRepo.delete(probeTransObj, "land"); |
808ea2091c1d
Updated repositoy structure and added probe services.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
441
diff
changeset
|
181 /* Delete the probe object*/ |
808ea2091c1d
Updated repositoy structure and added probe services.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
441
diff
changeset
|
182 Response response = defaultRepo.delete(probeObj, "land"); |
808ea2091c1d
Updated repositoy structure and added probe services.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
441
diff
changeset
|
183 return response; |
441
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
184 } |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
185 } |