Mercurial > lada > lada-server
annotate src/main/java/de/intevation/lada/rest/SVerwaltungseinheitService.java @ 263:2098db2e8fbd M1
Code documentation.
author | Raimund Renkert <rrenkert@intevation.de> |
---|---|
date | Wed, 17 Jul 2013 09:40:53 +0200 |
parents | d8a3d188046f |
children | 816291da1dde |
rev | line source |
---|---|
143
d92ce2ad8c7d
New service for SVerwaltungseinheit objects.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
1 package de.intevation.lada.rest; |
d92ce2ad8c7d
New service for SVerwaltungseinheit objects.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
2 |
208
832e67663fd9
Added authorization to all services.
Raimund Renkert <rrenkert@intevation.de>
parents:
157
diff
changeset
|
3 import java.util.ArrayList; |
832e67663fd9
Added authorization to all services.
Raimund Renkert <rrenkert@intevation.de>
parents:
157
diff
changeset
|
4 |
143
d92ce2ad8c7d
New service for SVerwaltungseinheit objects.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
5 import javax.enterprise.context.RequestScoped; |
d92ce2ad8c7d
New service for SVerwaltungseinheit objects.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
6 import javax.inject.Inject; |
d92ce2ad8c7d
New service for SVerwaltungseinheit objects.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
7 import javax.inject.Named; |
d92ce2ad8c7d
New service for SVerwaltungseinheit objects.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
8 import javax.ws.rs.GET; |
d92ce2ad8c7d
New service for SVerwaltungseinheit objects.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
9 import javax.ws.rs.Path; |
d92ce2ad8c7d
New service for SVerwaltungseinheit objects.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
10 import javax.ws.rs.PathParam; |
d92ce2ad8c7d
New service for SVerwaltungseinheit objects.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
11 import javax.ws.rs.Produces; |
208
832e67663fd9
Added authorization to all services.
Raimund Renkert <rrenkert@intevation.de>
parents:
157
diff
changeset
|
12 import javax.ws.rs.core.Context; |
832e67663fd9
Added authorization to all services.
Raimund Renkert <rrenkert@intevation.de>
parents:
157
diff
changeset
|
13 import javax.ws.rs.core.HttpHeaders; |
143
d92ce2ad8c7d
New service for SVerwaltungseinheit objects.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
14 |
232
d8a3d188046f
Renamed package authentication to auth.
Raimund Renkert <rrenkert@intevation.de>
parents:
210
diff
changeset
|
15 import de.intevation.lada.auth.Authentication; |
d8a3d188046f
Renamed package authentication to auth.
Raimund Renkert <rrenkert@intevation.de>
parents:
210
diff
changeset
|
16 import de.intevation.lada.auth.AuthenticationException; |
143
d92ce2ad8c7d
New service for SVerwaltungseinheit objects.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
17 import de.intevation.lada.data.Repository; |
d92ce2ad8c7d
New service for SVerwaltungseinheit objects.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
18 import de.intevation.lada.model.SVerwaltungseinheit; |
d92ce2ad8c7d
New service for SVerwaltungseinheit objects.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
19 |
d92ce2ad8c7d
New service for SVerwaltungseinheit objects.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
20 /** |
210
a305412206a3
Code documentation.
Raimund Renkert <rrenkert@intevation.de>
parents:
208
diff
changeset
|
21 * This class produces a RESTful service to read SVerwaltungseinheit objects. |
143
d92ce2ad8c7d
New service for SVerwaltungseinheit objects.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
22 * |
d92ce2ad8c7d
New service for SVerwaltungseinheit objects.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
23 * @author <a href="mailto:rrenkert@intevation.de">Raimund Renkert</a> |
d92ce2ad8c7d
New service for SVerwaltungseinheit objects.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
24 */ |
d92ce2ad8c7d
New service for SVerwaltungseinheit objects.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
25 @Path("/verwaltungseinheit") |
d92ce2ad8c7d
New service for SVerwaltungseinheit objects.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
26 @RequestScoped |
d92ce2ad8c7d
New service for SVerwaltungseinheit objects.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
27 public class SVerwaltungseinheitService |
d92ce2ad8c7d
New service for SVerwaltungseinheit objects.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
28 { |
d92ce2ad8c7d
New service for SVerwaltungseinheit objects.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
29 /** |
d92ce2ad8c7d
New service for SVerwaltungseinheit objects.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
30 * The Repository for SUmwelt. |
d92ce2ad8c7d
New service for SVerwaltungseinheit objects.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
31 */ |
d92ce2ad8c7d
New service for SVerwaltungseinheit objects.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
32 @Inject |
157
42e0085692df
Fixed typo in named injection point.
Raimund Renkert <rrenkert@intevation.de>
parents:
143
diff
changeset
|
33 @Named("readonlyrepository") |
143
d92ce2ad8c7d
New service for SVerwaltungseinheit objects.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
34 private Repository repository; |
d92ce2ad8c7d
New service for SVerwaltungseinheit objects.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
35 |
210
a305412206a3
Code documentation.
Raimund Renkert <rrenkert@intevation.de>
parents:
208
diff
changeset
|
36 /** |
a305412206a3
Code documentation.
Raimund Renkert <rrenkert@intevation.de>
parents:
208
diff
changeset
|
37 * The authorization module. |
a305412206a3
Code documentation.
Raimund Renkert <rrenkert@intevation.de>
parents:
208
diff
changeset
|
38 */ |
208
832e67663fd9
Added authorization to all services.
Raimund Renkert <rrenkert@intevation.de>
parents:
157
diff
changeset
|
39 @Inject |
832e67663fd9
Added authorization to all services.
Raimund Renkert <rrenkert@intevation.de>
parents:
157
diff
changeset
|
40 @Named("ldapauth") |
832e67663fd9
Added authorization to all services.
Raimund Renkert <rrenkert@intevation.de>
parents:
157
diff
changeset
|
41 private Authentication authentication; |
832e67663fd9
Added authorization to all services.
Raimund Renkert <rrenkert@intevation.de>
parents:
157
diff
changeset
|
42 |
143
d92ce2ad8c7d
New service for SVerwaltungseinheit objects.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
43 /** |
263
2098db2e8fbd
Code documentation.
Raimund Renkert <rrenkert@intevation.de>
parents:
232
diff
changeset
|
44 * Request all SVerwaltungseinheit objects. |
143
d92ce2ad8c7d
New service for SVerwaltungseinheit objects.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
45 * |
210
a305412206a3
Code documentation.
Raimund Renkert <rrenkert@intevation.de>
parents:
208
diff
changeset
|
46 * @param headers The HTTP header containing authorization information. |
a305412206a3
Code documentation.
Raimund Renkert <rrenkert@intevation.de>
parents:
208
diff
changeset
|
47 * @return Response object. |
143
d92ce2ad8c7d
New service for SVerwaltungseinheit objects.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
48 */ |
d92ce2ad8c7d
New service for SVerwaltungseinheit objects.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
49 @GET |
d92ce2ad8c7d
New service for SVerwaltungseinheit objects.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
50 @Produces("text/json") |
208
832e67663fd9
Added authorization to all services.
Raimund Renkert <rrenkert@intevation.de>
parents:
157
diff
changeset
|
51 public Response findAll(@Context HttpHeaders headers) { |
832e67663fd9
Added authorization to all services.
Raimund Renkert <rrenkert@intevation.de>
parents:
157
diff
changeset
|
52 try { |
832e67663fd9
Added authorization to all services.
Raimund Renkert <rrenkert@intevation.de>
parents:
157
diff
changeset
|
53 if (authentication.isAuthorizedUser(headers)) { |
832e67663fd9
Added authorization to all services.
Raimund Renkert <rrenkert@intevation.de>
parents:
157
diff
changeset
|
54 return repository.findAll(SVerwaltungseinheit.class); |
832e67663fd9
Added authorization to all services.
Raimund Renkert <rrenkert@intevation.de>
parents:
157
diff
changeset
|
55 } |
832e67663fd9
Added authorization to all services.
Raimund Renkert <rrenkert@intevation.de>
parents:
157
diff
changeset
|
56 return new Response(false, 699, new ArrayList<SVerwaltungseinheit>()); |
832e67663fd9
Added authorization to all services.
Raimund Renkert <rrenkert@intevation.de>
parents:
157
diff
changeset
|
57 } |
832e67663fd9
Added authorization to all services.
Raimund Renkert <rrenkert@intevation.de>
parents:
157
diff
changeset
|
58 catch(AuthenticationException ae) { |
832e67663fd9
Added authorization to all services.
Raimund Renkert <rrenkert@intevation.de>
parents:
157
diff
changeset
|
59 return new Response(false, 699, new ArrayList<SVerwaltungseinheit>()); |
832e67663fd9
Added authorization to all services.
Raimund Renkert <rrenkert@intevation.de>
parents:
157
diff
changeset
|
60 } |
143
d92ce2ad8c7d
New service for SVerwaltungseinheit objects.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
61 } |
d92ce2ad8c7d
New service for SVerwaltungseinheit objects.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
62 |
d92ce2ad8c7d
New service for SVerwaltungseinheit objects.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
63 /** |
263
2098db2e8fbd
Code documentation.
Raimund Renkert <rrenkert@intevation.de>
parents:
232
diff
changeset
|
64 * Request a SVerwaltungseinheit object via its id. |
143
d92ce2ad8c7d
New service for SVerwaltungseinheit objects.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
65 * |
210
a305412206a3
Code documentation.
Raimund Renkert <rrenkert@intevation.de>
parents:
208
diff
changeset
|
66 * @param id The object id. |
a305412206a3
Code documentation.
Raimund Renkert <rrenkert@intevation.de>
parents:
208
diff
changeset
|
67 * @param headers The HTTP header containing authorization information. |
a305412206a3
Code documentation.
Raimund Renkert <rrenkert@intevation.de>
parents:
208
diff
changeset
|
68 * @return Response object. |
143
d92ce2ad8c7d
New service for SVerwaltungseinheit objects.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
69 */ |
d92ce2ad8c7d
New service for SVerwaltungseinheit objects.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
70 @GET |
d92ce2ad8c7d
New service for SVerwaltungseinheit objects.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
71 @Path("/{id:[0-9][0-9]*}") |
d92ce2ad8c7d
New service for SVerwaltungseinheit objects.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
72 @Produces("text/json") |
208
832e67663fd9
Added authorization to all services.
Raimund Renkert <rrenkert@intevation.de>
parents:
157
diff
changeset
|
73 public Response findById( |
832e67663fd9
Added authorization to all services.
Raimund Renkert <rrenkert@intevation.de>
parents:
157
diff
changeset
|
74 @PathParam("id") String id, |
832e67663fd9
Added authorization to all services.
Raimund Renkert <rrenkert@intevation.de>
parents:
157
diff
changeset
|
75 @Context HttpHeaders headers |
832e67663fd9
Added authorization to all services.
Raimund Renkert <rrenkert@intevation.de>
parents:
157
diff
changeset
|
76 ) { |
832e67663fd9
Added authorization to all services.
Raimund Renkert <rrenkert@intevation.de>
parents:
157
diff
changeset
|
77 try { |
832e67663fd9
Added authorization to all services.
Raimund Renkert <rrenkert@intevation.de>
parents:
157
diff
changeset
|
78 if (authentication.isAuthorizedUser(headers)) { |
832e67663fd9
Added authorization to all services.
Raimund Renkert <rrenkert@intevation.de>
parents:
157
diff
changeset
|
79 return repository.findById(SVerwaltungseinheit.class, id); |
832e67663fd9
Added authorization to all services.
Raimund Renkert <rrenkert@intevation.de>
parents:
157
diff
changeset
|
80 } |
832e67663fd9
Added authorization to all services.
Raimund Renkert <rrenkert@intevation.de>
parents:
157
diff
changeset
|
81 return new Response(false, 699, new ArrayList<SVerwaltungseinheit>()); |
832e67663fd9
Added authorization to all services.
Raimund Renkert <rrenkert@intevation.de>
parents:
157
diff
changeset
|
82 } |
832e67663fd9
Added authorization to all services.
Raimund Renkert <rrenkert@intevation.de>
parents:
157
diff
changeset
|
83 catch(AuthenticationException ae) { |
832e67663fd9
Added authorization to all services.
Raimund Renkert <rrenkert@intevation.de>
parents:
157
diff
changeset
|
84 return new Response(false, 699, new ArrayList<SVerwaltungseinheit>()); |
832e67663fd9
Added authorization to all services.
Raimund Renkert <rrenkert@intevation.de>
parents:
157
diff
changeset
|
85 } |
143
d92ce2ad8c7d
New service for SVerwaltungseinheit objects.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
86 } |
d92ce2ad8c7d
New service for SVerwaltungseinheit objects.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
87 } |