Mercurial > lada > lada-server
annotate src/main/java/de/intevation/lada/rest/LKommentarService.java @ 56:9f3e902ce778
Added new entity, repository and service for 'LKommentarP'.
author | Raimund Renkert <rrenkert@intevation.de> |
---|---|
date | Mon, 27 May 2013 15:23:41 +0200 |
parents | |
children | f2c4d8a5f0d6 |
rev | line source |
---|---|
56
9f3e902ce778
Added new entity, repository and service for 'LKommentarP'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
1 package de.intevation.lada.rest; |
9f3e902ce778
Added new entity, repository and service for 'LKommentarP'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
2 |
9f3e902ce778
Added new entity, repository and service for 'LKommentarP'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
3 import java.util.ArrayList; |
9f3e902ce778
Added new entity, repository and service for 'LKommentarP'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
4 import java.util.List; |
9f3e902ce778
Added new entity, repository and service for 'LKommentarP'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
5 import java.util.logging.Level; |
9f3e902ce778
Added new entity, repository and service for 'LKommentarP'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
6 import java.util.logging.Logger; |
9f3e902ce778
Added new entity, repository and service for 'LKommentarP'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
7 |
9f3e902ce778
Added new entity, repository and service for 'LKommentarP'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
8 import javax.enterprise.context.RequestScoped; |
9f3e902ce778
Added new entity, repository and service for 'LKommentarP'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
9 import javax.inject.Inject; |
9f3e902ce778
Added new entity, repository and service for 'LKommentarP'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
10 import javax.inject.Named; |
9f3e902ce778
Added new entity, repository and service for 'LKommentarP'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
11 import javax.ws.rs.Consumes; |
9f3e902ce778
Added new entity, repository and service for 'LKommentarP'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
12 import javax.ws.rs.GET; |
9f3e902ce778
Added new entity, repository and service for 'LKommentarP'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
13 import javax.ws.rs.POST; |
9f3e902ce778
Added new entity, repository and service for 'LKommentarP'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
14 import javax.ws.rs.Path; |
9f3e902ce778
Added new entity, repository and service for 'LKommentarP'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
15 import javax.ws.rs.PathParam; |
9f3e902ce778
Added new entity, repository and service for 'LKommentarP'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
16 import javax.ws.rs.Produces; |
9f3e902ce778
Added new entity, repository and service for 'LKommentarP'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
17 import javax.ws.rs.core.Context; |
9f3e902ce778
Added new entity, repository and service for 'LKommentarP'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
18 import javax.ws.rs.core.MultivaluedMap; |
9f3e902ce778
Added new entity, repository and service for 'LKommentarP'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
19 import javax.ws.rs.core.UriInfo; |
9f3e902ce778
Added new entity, repository and service for 'LKommentarP'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
20 |
9f3e902ce778
Added new entity, repository and service for 'LKommentarP'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
21 import de.intevation.lada.data.LKommentarPRepository; |
9f3e902ce778
Added new entity, repository and service for 'LKommentarP'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
22 import de.intevation.lada.model.LKommentarP; |
9f3e902ce778
Added new entity, repository and service for 'LKommentarP'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
23 |
9f3e902ce778
Added new entity, repository and service for 'LKommentarP'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
24 /** |
9f3e902ce778
Added new entity, repository and service for 'LKommentarP'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
25 * This class produces a RESTful service to read the contents of LKommentarP table. |
9f3e902ce778
Added new entity, repository and service for 'LKommentarP'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
26 * |
9f3e902ce778
Added new entity, repository and service for 'LKommentarP'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
27 * @author <a href="mailto:rrenkert@intevation.de">Raimund Renkert</a> |
9f3e902ce778
Added new entity, repository and service for 'LKommentarP'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
28 */ |
9f3e902ce778
Added new entity, repository and service for 'LKommentarP'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
29 @Path("/kommentar") |
9f3e902ce778
Added new entity, repository and service for 'LKommentarP'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
30 @RequestScoped |
9f3e902ce778
Added new entity, repository and service for 'LKommentarP'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
31 public class LKommentarService |
9f3e902ce778
Added new entity, repository and service for 'LKommentarP'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
32 { |
9f3e902ce778
Added new entity, repository and service for 'LKommentarP'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
33 /** |
9f3e902ce778
Added new entity, repository and service for 'LKommentarP'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
34 * The Repository. |
9f3e902ce778
Added new entity, repository and service for 'LKommentarP'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
35 */ |
9f3e902ce778
Added new entity, repository and service for 'LKommentarP'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
36 @Inject @Named("lkommentarRepository") |
9f3e902ce778
Added new entity, repository and service for 'LKommentarP'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
37 private LKommentarPRepository repository; |
9f3e902ce778
Added new entity, repository and service for 'LKommentarP'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
38 |
9f3e902ce778
Added new entity, repository and service for 'LKommentarP'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
39 /** |
9f3e902ce778
Added new entity, repository and service for 'LKommentarP'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
40 * The logger for this class |
9f3e902ce778
Added new entity, repository and service for 'LKommentarP'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
41 */ |
9f3e902ce778
Added new entity, repository and service for 'LKommentarP'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
42 @Inject |
9f3e902ce778
Added new entity, repository and service for 'LKommentarP'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
43 private Logger logger; |
9f3e902ce778
Added new entity, repository and service for 'LKommentarP'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
44 |
9f3e902ce778
Added new entity, repository and service for 'LKommentarP'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
45 /** |
9f3e902ce778
Added new entity, repository and service for 'LKommentarP'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
46 * Request a single SKommentarP via its id. |
9f3e902ce778
Added new entity, repository and service for 'LKommentarP'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
47 * |
9f3e902ce778
Added new entity, repository and service for 'LKommentarP'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
48 * @param id The mst_id |
9f3e902ce778
Added new entity, repository and service for 'LKommentarP'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
49 * @return JSON Object via REST service. |
9f3e902ce778
Added new entity, repository and service for 'LKommentarP'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
50 */ |
9f3e902ce778
Added new entity, repository and service for 'LKommentarP'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
51 @GET |
9f3e902ce778
Added new entity, repository and service for 'LKommentarP'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
52 @Path("/{id}") |
9f3e902ce778
Added new entity, repository and service for 'LKommentarP'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
53 @Produces("text/json") |
9f3e902ce778
Added new entity, repository and service for 'LKommentarP'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
54 public LKommentarP findById(@PathParam("id") String id) { |
9f3e902ce778
Added new entity, repository and service for 'LKommentarP'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
55 return repository.findById(LKommentarP.class, id); |
9f3e902ce778
Added new entity, repository and service for 'LKommentarP'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
56 } |
9f3e902ce778
Added new entity, repository and service for 'LKommentarP'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
57 |
9f3e902ce778
Added new entity, repository and service for 'LKommentarP'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
58 /** |
9f3e902ce778
Added new entity, repository and service for 'LKommentarP'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
59 * Request a list of LKommentarP objects filtered by LProbe id. |
9f3e902ce778
Added new entity, repository and service for 'LKommentarP'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
60 * |
9f3e902ce778
Added new entity, repository and service for 'LKommentarP'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
61 * @param info The query parameters |
9f3e902ce778
Added new entity, repository and service for 'LKommentarP'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
62 * @return JSON object via REST service. |
9f3e902ce778
Added new entity, repository and service for 'LKommentarP'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
63 */ |
9f3e902ce778
Added new entity, repository and service for 'LKommentarP'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
64 @GET |
9f3e902ce778
Added new entity, repository and service for 'LKommentarP'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
65 @Produces("text/json") |
9f3e902ce778
Added new entity, repository and service for 'LKommentarP'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
66 public List<LKommentarP> filter(@Context UriInfo info) { |
9f3e902ce778
Added new entity, repository and service for 'LKommentarP'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
67 MultivaluedMap<String, String> params = info.getQueryParameters(); |
9f3e902ce778
Added new entity, repository and service for 'LKommentarP'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
68 if (params.isEmpty()) { |
9f3e902ce778
Added new entity, repository and service for 'LKommentarP'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
69 return new ArrayList<LKommentarP>(0); |
9f3e902ce778
Added new entity, repository and service for 'LKommentarP'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
70 } |
9f3e902ce778
Added new entity, repository and service for 'LKommentarP'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
71 if (params.containsKey("probe")) { |
9f3e902ce778
Added new entity, repository and service for 'LKommentarP'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
72 String probe = params.getFirst("probe"); |
9f3e902ce778
Added new entity, repository and service for 'LKommentarP'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
73 return repository.filter(probe); |
9f3e902ce778
Added new entity, repository and service for 'LKommentarP'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
74 } |
9f3e902ce778
Added new entity, repository and service for 'LKommentarP'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
75 else { |
9f3e902ce778
Added new entity, repository and service for 'LKommentarP'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
76 return new ArrayList<LKommentarP>(0); |
9f3e902ce778
Added new entity, repository and service for 'LKommentarP'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
77 } |
9f3e902ce778
Added new entity, repository and service for 'LKommentarP'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
78 } |
9f3e902ce778
Added new entity, repository and service for 'LKommentarP'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
79 |
9f3e902ce778
Added new entity, repository and service for 'LKommentarP'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
80 @POST |
9f3e902ce778
Added new entity, repository and service for 'LKommentarP'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
81 @Path("/create") |
9f3e902ce778
Added new entity, repository and service for 'LKommentarP'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
82 @Consumes("application/json") |
9f3e902ce778
Added new entity, repository and service for 'LKommentarP'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
83 public String create(LKommentarP kommentar) { |
9f3e902ce778
Added new entity, repository and service for 'LKommentarP'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
84 String response = repository.create(kommentar); |
9f3e902ce778
Added new entity, repository and service for 'LKommentarP'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
85 if (response.isEmpty()) { |
9f3e902ce778
Added new entity, repository and service for 'LKommentarP'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
86 return "[{success: true}]"; |
9f3e902ce778
Added new entity, repository and service for 'LKommentarP'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
87 } |
9f3e902ce778
Added new entity, repository and service for 'LKommentarP'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
88 else { |
9f3e902ce778
Added new entity, repository and service for 'LKommentarP'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
89 return "[{success: false," + |
9f3e902ce778
Added new entity, repository and service for 'LKommentarP'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
90 " error: " + response + "}]"; |
9f3e902ce778
Added new entity, repository and service for 'LKommentarP'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
91 } |
9f3e902ce778
Added new entity, repository and service for 'LKommentarP'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
92 } |
9f3e902ce778
Added new entity, repository and service for 'LKommentarP'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
93 } |