Mercurial > lada > lada-server
annotate src/main/java/de/intevation/lada/rest/ProbeService.java @ 441:6020c66849f3
Added probe service.
author | Raimund Renkert <raimund.renkert@intevation.de> |
---|---|
date | Fri, 06 Feb 2015 17:57:48 +0100 |
parents | |
children | 808ea2091c1d |
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 |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
10 import javax.enterprise.context.RequestScoped; |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
11 import javax.inject.Inject; |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
12 import javax.ws.rs.GET; |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
13 import javax.ws.rs.Path; |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
14 import javax.ws.rs.PathParam; |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
15 import javax.ws.rs.Produces; |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
16 import javax.ws.rs.core.Context; |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
17 import javax.ws.rs.core.HttpHeaders; |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
18 import javax.ws.rs.core.MediaType; |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
19 |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
20 import org.apache.log4j.Logger; |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
21 |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
22 import de.intevation.lada.model.land.LProbe; |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
23 import de.intevation.lada.util.annotation.AuthenticationConfig; |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
24 import de.intevation.lada.util.annotation.AuthorizationConfig; |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
25 import de.intevation.lada.util.annotation.RepositoryConfig; |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
26 import de.intevation.lada.util.auth.Authentication; |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
27 import de.intevation.lada.util.auth.AuthenticationType; |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
28 import de.intevation.lada.util.auth.Authorization; |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
29 import de.intevation.lada.util.auth.AuthorizationType; |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
30 import de.intevation.lada.util.data.Repository; |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
31 import de.intevation.lada.util.data.RepositoryType; |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
32 import de.intevation.lada.util.rest.Response; |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
33 |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
34 @Path("probe") |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
35 @RequestScoped |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
36 public class ProbeService { |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
37 |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
38 @Inject |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
39 private Logger logger; |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
40 |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
41 @Inject |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
42 @RepositoryConfig(type=RepositoryType.RW) |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
43 private Repository defaultRepo; |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
44 |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
45 @Inject |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
46 @AuthenticationConfig(type=AuthenticationType.NONE) |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
47 private Authentication authentication; |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
48 |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
49 @Inject |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
50 @AuthorizationConfig(type=AuthorizationType.NONE) |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
51 private Authorization authorization; |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
52 |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
53 @GET |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
54 @Path("/") |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
55 @Produces("application/json") |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
56 public Response get(@Context HttpHeaders headers) { |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
57 if (!authentication.isAuthenticated(headers)) { |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
58 logger.debug("User is not authenticated!"); |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
59 return new Response(false, 699, null); |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
60 } |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
61 defaultRepo.setDataSource("land"); |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
62 return defaultRepo.getAll(LProbe.class); |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
63 } |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
64 |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
65 @GET |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
66 @Path("/{id}") |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
67 @Produces(MediaType.APPLICATION_JSON) |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
68 public Response getById( |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
69 @Context HttpHeaders headers, |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
70 @PathParam("id") String id |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
71 ) { |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
72 if (!authentication.isAuthenticated(headers)) { |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
73 logger.debug("User is not authenticated!"); |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
74 return new Response(false, 699, null); |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
75 } |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
76 defaultRepo.setDataSource("land"); |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
77 return defaultRepo.getById(LProbe.class, Integer.valueOf(id)); |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
78 } |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
79 |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
80 @GET |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
81 @Produces("application/json") |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
82 @Path("/land") |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
83 public Response getAllLand() { |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
84 //List<LProbe> res = dao.getAllLand(); |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
85 //return new Response(true, 200, res); |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
86 return null; |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
87 } |
6020c66849f3
Added probe service.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
88 } |