Mercurial > lada > lada-server
comparison src/main/java/de/intevation/lada/rest/LMesswertService.java @ 250:307ed0ca83ef
'DELETE' for LMesswert service and use the read only test.
author | Raimund Renkert <rrenkert@intevation.de> |
---|---|
date | Mon, 15 Jul 2013 15:41:12 +0200 |
parents | 1963f002e4c0 |
children | 8265c5de15cb |
comparison
equal
deleted
inserted
replaced
249:2dbe200b73f5 | 250:307ed0ca83ef |
---|---|
5 | 5 |
6 import javax.enterprise.context.RequestScoped; | 6 import javax.enterprise.context.RequestScoped; |
7 import javax.inject.Inject; | 7 import javax.inject.Inject; |
8 import javax.inject.Named; | 8 import javax.inject.Named; |
9 import javax.ws.rs.Consumes; | 9 import javax.ws.rs.Consumes; |
10 import javax.ws.rs.DELETE; | |
10 import javax.ws.rs.GET; | 11 import javax.ws.rs.GET; |
11 import javax.ws.rs.POST; | 12 import javax.ws.rs.POST; |
12 import javax.ws.rs.PUT; | 13 import javax.ws.rs.PUT; |
13 import javax.ws.rs.Path; | 14 import javax.ws.rs.Path; |
15 import javax.ws.rs.PathParam; | |
14 import javax.ws.rs.Produces; | 16 import javax.ws.rs.Produces; |
15 import javax.ws.rs.core.Context; | 17 import javax.ws.rs.core.Context; |
16 import javax.ws.rs.core.HttpHeaders; | 18 import javax.ws.rs.core.HttpHeaders; |
17 import javax.ws.rs.core.MultivaluedMap; | 19 import javax.ws.rs.core.MultivaluedMap; |
18 import javax.ws.rs.core.UriInfo; | 20 import javax.ws.rs.core.UriInfo; |
154 catch(AuthenticationException ae) { | 156 catch(AuthenticationException ae) { |
155 return new Response(false, 699, new ArrayList<LMesswert>()); | 157 return new Response(false, 699, new ArrayList<LMesswert>()); |
156 } | 158 } |
157 } | 159 } |
158 | 160 |
161 /** | |
162 * Delete a LMesswert object. | |
163 * | |
164 * @param statusId The object id. | |
165 * @param messungsId The LProbe id. | |
166 * @param statusId The LStatus id | |
167 * @param headers The HTTP header containing authorization information. | |
168 * @return Response object. | |
169 */ | |
170 @DELETE | |
171 @Path("/{messgroesseId}/{messungsId}/{probeId}") | |
172 public Response delete( | |
173 @PathParam("messgroesseId") String messgroesseId, | |
174 @PathParam("messungsId") String messungsId, | |
175 @PathParam("probeId") String probeId, | |
176 @Context HttpHeaders headers | |
177 ) { | |
178 try { | |
179 if (authentication.hasAccess(headers, probeId)) { | |
180 QueryBuilder<LMesswert> builder = | |
181 new QueryBuilder<LMesswert>( | |
182 repository.getEntityManager(), | |
183 LMesswert.class); | |
184 builder.and("messgroesseId", messgroesseId) | |
185 .and("messungsId", messungsId) | |
186 .and("probeId", probeId); | |
187 Response response = repository.filter(builder.getQuery()); | |
188 List<LMesswert> list = (List<LMesswert>)response.getData(); | |
189 if (!list.isEmpty()) { | |
190 repository.delete(list.get(0)); | |
191 return new Response(true, 200, null); | |
192 } | |
193 return new Response(false, 600, null); | |
194 } | |
195 return new Response(false, 698, new ArrayList<LMesswert>()); | |
196 } | |
197 catch(AuthenticationException ae) { | |
198 return new Response(false, 699, new ArrayList<LMesswert>()); | |
199 } | |
200 } | |
201 | |
159 private boolean isReadOnly(String probeId, Integer messungsId) { | 202 private boolean isReadOnly(String probeId, Integer messungsId) { |
160 return false; | 203 QueryBuilder<LMessung> builder = |
161 // TODO: Fix #19 and make the following line work. (2013-07-08, 10:08, torsten) | 204 new QueryBuilder<LMessung>( |
162 //QueryBuilder<LMessung> builder = | 205 messungRepository.getEntityManager(), |
163 // new QueryBuilder<LMessung>( | 206 LMessung.class); |
164 // messungRepository.getEntityManager(), | 207 builder.and("probeId", probeId) |
165 // LMessung.class); | 208 .and("messungsId", String.valueOf(messungsId)); |
166 //builder.and("probeId", probeId) | 209 Response response = messungRepository.filter(builder.getQuery()); |
167 // .and("messungsId", String.valueOf(messungsId)); | 210 List<LMessung> messungen = (List<LMessung>) response.getData(); |
168 //Response response = messungRepository.filter(builder.getQuery()); | 211 if (messungen.isEmpty()) { |
169 //List<LMessung> messungen = (List<LMessung>) response.getData(); | 212 return true; |
170 //if (messungen.isEmpty()) { | 213 } |
171 // return true; | 214 if (messungen.size() > 1) { |
172 //} | 215 return true; |
173 //if (messungen.size() > 1) { | 216 } |
174 // return true; | 217 return messungen.get(0).isFertig(); |
175 //} | |
176 //return messungen.get(0).isFertig(); | |
177 } | 218 } |
178 } | 219 } |