Mercurial > lada > lada-server
annotate src/main/java/de/intevation/lada/rest/SProbenartService.java @ 366:567ce7697fc7 0.5
Code documentation.
author | Raimund Renkert <rrenkert@intevation.de> |
---|---|
date | Tue, 10 Sep 2013 15:55:54 +0200 |
parents | d8a3d188046f |
children | 183f8116d9a6 |
rev | line source |
---|---|
48
afc3ef3dc3c3
New REST service for 'Probenart Stammdaten'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
1 package de.intevation.lada.rest; |
afc3ef3dc3c3
New REST service for 'Probenart Stammdaten'.
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; |
48
afc3ef3dc3c3
New REST service for 'Probenart Stammdaten'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
4 import java.util.logging.Logger; |
afc3ef3dc3c3
New REST service for 'Probenart Stammdaten'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
5 |
afc3ef3dc3c3
New REST service for 'Probenart Stammdaten'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
6 import javax.enterprise.context.RequestScoped; |
afc3ef3dc3c3
New REST service for 'Probenart Stammdaten'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
7 import javax.inject.Inject; |
afc3ef3dc3c3
New REST service for 'Probenart Stammdaten'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
8 import javax.inject.Named; |
afc3ef3dc3c3
New REST service for 'Probenart Stammdaten'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
9 import javax.ws.rs.GET; |
afc3ef3dc3c3
New REST service for 'Probenart Stammdaten'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
10 import javax.ws.rs.Path; |
afc3ef3dc3c3
New REST service for 'Probenart Stammdaten'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
11 import javax.ws.rs.PathParam; |
afc3ef3dc3c3
New REST service for 'Probenart Stammdaten'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
12 import javax.ws.rs.Produces; |
208
832e67663fd9
Added authorization to all services.
Raimund Renkert <rrenkert@intevation.de>
parents:
157
diff
changeset
|
13 import javax.ws.rs.core.Context; |
832e67663fd9
Added authorization to all services.
Raimund Renkert <rrenkert@intevation.de>
parents:
157
diff
changeset
|
14 import javax.ws.rs.core.HttpHeaders; |
48
afc3ef3dc3c3
New REST service for 'Probenart Stammdaten'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
15 |
232
d8a3d188046f
Renamed package authentication to auth.
Raimund Renkert <rrenkert@intevation.de>
parents:
210
diff
changeset
|
16 import de.intevation.lada.auth.Authentication; |
d8a3d188046f
Renamed package authentication to auth.
Raimund Renkert <rrenkert@intevation.de>
parents:
210
diff
changeset
|
17 import de.intevation.lada.auth.AuthenticationException; |
48
afc3ef3dc3c3
New REST service for 'Probenart Stammdaten'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
18 import de.intevation.lada.data.Repository; |
afc3ef3dc3c3
New REST service for 'Probenart Stammdaten'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
19 import de.intevation.lada.model.SProbenart; |
afc3ef3dc3c3
New REST service for 'Probenart Stammdaten'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
20 |
afc3ef3dc3c3
New REST service for 'Probenart Stammdaten'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
21 /** |
210
a305412206a3
Code documentation.
Raimund Renkert <rrenkert@intevation.de>
parents:
208
diff
changeset
|
22 * This class produces a RESTful service to read SProbenart objects. |
48
afc3ef3dc3c3
New REST service for 'Probenart Stammdaten'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
23 * |
afc3ef3dc3c3
New REST service for 'Probenart Stammdaten'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
24 * @author <a href="mailto:rrenkert@intevation.de">Raimund Renkert</a> |
afc3ef3dc3c3
New REST service for 'Probenart Stammdaten'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
25 */ |
afc3ef3dc3c3
New REST service for 'Probenart Stammdaten'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
26 @Path("/probenart") |
afc3ef3dc3c3
New REST service for 'Probenart Stammdaten'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
27 @RequestScoped |
afc3ef3dc3c3
New REST service for 'Probenart Stammdaten'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
28 public class SProbenartService |
afc3ef3dc3c3
New REST service for 'Probenart Stammdaten'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
29 { |
afc3ef3dc3c3
New REST service for 'Probenart Stammdaten'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
30 /** |
afc3ef3dc3c3
New REST service for 'Probenart Stammdaten'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
31 * The Repository for SProbenart. |
afc3ef3dc3c3
New REST service for 'Probenart Stammdaten'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
32 */ |
133
750585244083
Use named injection points in stammdaten repositories.
Raimund Renkert <rrenkert@intevation.de>
parents:
107
diff
changeset
|
33 @Inject |
157
42e0085692df
Fixed typo in named injection point.
Raimund Renkert <rrenkert@intevation.de>
parents:
134
diff
changeset
|
34 @Named("readonlyrepository") |
48
afc3ef3dc3c3
New REST service for 'Probenart Stammdaten'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
35 private Repository repository; |
afc3ef3dc3c3
New REST service for 'Probenart Stammdaten'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
36 |
210
a305412206a3
Code documentation.
Raimund Renkert <rrenkert@intevation.de>
parents:
208
diff
changeset
|
37 /** |
a305412206a3
Code documentation.
Raimund Renkert <rrenkert@intevation.de>
parents:
208
diff
changeset
|
38 * The authorization module. |
a305412206a3
Code documentation.
Raimund Renkert <rrenkert@intevation.de>
parents:
208
diff
changeset
|
39 */ |
208
832e67663fd9
Added authorization to all services.
Raimund Renkert <rrenkert@intevation.de>
parents:
157
diff
changeset
|
40 @Inject |
832e67663fd9
Added authorization to all services.
Raimund Renkert <rrenkert@intevation.de>
parents:
157
diff
changeset
|
41 @Named("ldapauth") |
832e67663fd9
Added authorization to all services.
Raimund Renkert <rrenkert@intevation.de>
parents:
157
diff
changeset
|
42 private Authentication authentication; |
832e67663fd9
Added authorization to all services.
Raimund Renkert <rrenkert@intevation.de>
parents:
157
diff
changeset
|
43 |
48
afc3ef3dc3c3
New REST service for 'Probenart Stammdaten'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
44 /** |
afc3ef3dc3c3
New REST service for 'Probenart Stammdaten'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
45 * The logger for this class |
afc3ef3dc3c3
New REST service for 'Probenart Stammdaten'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
46 */ |
afc3ef3dc3c3
New REST service for 'Probenart Stammdaten'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
47 @Inject |
afc3ef3dc3c3
New REST service for 'Probenart Stammdaten'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
48 private Logger logger; |
afc3ef3dc3c3
New REST service for 'Probenart Stammdaten'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
49 |
afc3ef3dc3c3
New REST service for 'Probenart Stammdaten'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
50 /** |
afc3ef3dc3c3
New REST service for 'Probenart Stammdaten'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
51 * Request all SProbenart objects. |
afc3ef3dc3c3
New REST service for 'Probenart Stammdaten'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
52 * |
210
a305412206a3
Code documentation.
Raimund Renkert <rrenkert@intevation.de>
parents:
208
diff
changeset
|
53 * @return Response object. |
48
afc3ef3dc3c3
New REST service for 'Probenart Stammdaten'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
54 */ |
afc3ef3dc3c3
New REST service for 'Probenart Stammdaten'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
55 @GET |
afc3ef3dc3c3
New REST service for 'Probenart Stammdaten'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
56 @Produces("text/json") |
208
832e67663fd9
Added authorization to all services.
Raimund Renkert <rrenkert@intevation.de>
parents:
157
diff
changeset
|
57 public Response findAll(@Context HttpHeaders headers) { |
832e67663fd9
Added authorization to all services.
Raimund Renkert <rrenkert@intevation.de>
parents:
157
diff
changeset
|
58 try { |
832e67663fd9
Added authorization to all services.
Raimund Renkert <rrenkert@intevation.de>
parents:
157
diff
changeset
|
59 if (authentication.isAuthorizedUser(headers)) { |
832e67663fd9
Added authorization to all services.
Raimund Renkert <rrenkert@intevation.de>
parents:
157
diff
changeset
|
60 return repository.findAll(SProbenart.class); |
832e67663fd9
Added authorization to all services.
Raimund Renkert <rrenkert@intevation.de>
parents:
157
diff
changeset
|
61 } |
832e67663fd9
Added authorization to all services.
Raimund Renkert <rrenkert@intevation.de>
parents:
157
diff
changeset
|
62 return new Response(false, 699, new ArrayList<SProbenart>()); |
832e67663fd9
Added authorization to all services.
Raimund Renkert <rrenkert@intevation.de>
parents:
157
diff
changeset
|
63 } |
832e67663fd9
Added authorization to all services.
Raimund Renkert <rrenkert@intevation.de>
parents:
157
diff
changeset
|
64 catch(AuthenticationException ae) { |
832e67663fd9
Added authorization to all services.
Raimund Renkert <rrenkert@intevation.de>
parents:
157
diff
changeset
|
65 return new Response(false, 699, new ArrayList<SProbenart>()); |
832e67663fd9
Added authorization to all services.
Raimund Renkert <rrenkert@intevation.de>
parents:
157
diff
changeset
|
66 } |
48
afc3ef3dc3c3
New REST service for 'Probenart Stammdaten'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
67 } |
afc3ef3dc3c3
New REST service for 'Probenart Stammdaten'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
68 |
afc3ef3dc3c3
New REST service for 'Probenart Stammdaten'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
69 /** |
afc3ef3dc3c3
New REST service for 'Probenart Stammdaten'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
70 * Request a single SProbenart via its id. |
afc3ef3dc3c3
New REST service for 'Probenart Stammdaten'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
71 * |
210
a305412206a3
Code documentation.
Raimund Renkert <rrenkert@intevation.de>
parents:
208
diff
changeset
|
72 * @param id The object id. |
366
567ce7697fc7
Code documentation.
Raimund Renkert <rrenkert@intevation.de>
parents:
232
diff
changeset
|
73 * @param headers The HTTP header containing authorization information. |
210
a305412206a3
Code documentation.
Raimund Renkert <rrenkert@intevation.de>
parents:
208
diff
changeset
|
74 * @return Response object. |
48
afc3ef3dc3c3
New REST service for 'Probenart Stammdaten'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
75 */ |
afc3ef3dc3c3
New REST service for 'Probenart Stammdaten'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
76 @GET |
afc3ef3dc3c3
New REST service for 'Probenart Stammdaten'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
77 @Path("/{id}") |
afc3ef3dc3c3
New REST service for 'Probenart Stammdaten'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
78 @Produces("text/json") |
208
832e67663fd9
Added authorization to all services.
Raimund Renkert <rrenkert@intevation.de>
parents:
157
diff
changeset
|
79 public Response findById( |
832e67663fd9
Added authorization to all services.
Raimund Renkert <rrenkert@intevation.de>
parents:
157
diff
changeset
|
80 @PathParam("id") String id, |
832e67663fd9
Added authorization to all services.
Raimund Renkert <rrenkert@intevation.de>
parents:
157
diff
changeset
|
81 @Context HttpHeaders headers |
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 try { |
832e67663fd9
Added authorization to all services.
Raimund Renkert <rrenkert@intevation.de>
parents:
157
diff
changeset
|
84 if (authentication.isAuthorizedUser(headers)) { |
832e67663fd9
Added authorization to all services.
Raimund Renkert <rrenkert@intevation.de>
parents:
157
diff
changeset
|
85 return repository.findById(SProbenart.class, id); |
832e67663fd9
Added authorization to all services.
Raimund Renkert <rrenkert@intevation.de>
parents:
157
diff
changeset
|
86 } |
832e67663fd9
Added authorization to all services.
Raimund Renkert <rrenkert@intevation.de>
parents:
157
diff
changeset
|
87 return new Response(false, 699, new ArrayList<SProbenart>()); |
832e67663fd9
Added authorization to all services.
Raimund Renkert <rrenkert@intevation.de>
parents:
157
diff
changeset
|
88 } |
832e67663fd9
Added authorization to all services.
Raimund Renkert <rrenkert@intevation.de>
parents:
157
diff
changeset
|
89 catch(AuthenticationException ae) { |
832e67663fd9
Added authorization to all services.
Raimund Renkert <rrenkert@intevation.de>
parents:
157
diff
changeset
|
90 return new Response(false, 699, new ArrayList<SProbenart>()); |
832e67663fd9
Added authorization to all services.
Raimund Renkert <rrenkert@intevation.de>
parents:
157
diff
changeset
|
91 } |
48
afc3ef3dc3c3
New REST service for 'Probenart Stammdaten'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
92 } |
afc3ef3dc3c3
New REST service for 'Probenart Stammdaten'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
93 } |