annotate src/main/java/de/intevation/lada/rest/QueryService.java @ 265:6c26e6474c0f

Added service to fetch sql query configurations.
author Torsten Irländer <torsten.irlaender@intevation.de>
date Wed, 24 Jul 2013 09:09:57 +0200
parents
children 2e86f535f290
rev   line source
265
6c26e6474c0f Added service to fetch sql query configurations.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff changeset
1 package de.intevation.lada.rest;
6c26e6474c0f Added service to fetch sql query configurations.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff changeset
2
6c26e6474c0f Added service to fetch sql query configurations.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff changeset
3 import java.util.ArrayList;
6c26e6474c0f Added service to fetch sql query configurations.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff changeset
4
6c26e6474c0f Added service to fetch sql query configurations.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff changeset
5 import javax.enterprise.context.RequestScoped;
6c26e6474c0f Added service to fetch sql query configurations.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff changeset
6 import javax.inject.Inject;
6c26e6474c0f Added service to fetch sql query configurations.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff changeset
7 import javax.inject.Named;
6c26e6474c0f Added service to fetch sql query configurations.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff changeset
8 import javax.ws.rs.GET;
6c26e6474c0f Added service to fetch sql query configurations.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff changeset
9 import javax.ws.rs.Path;
6c26e6474c0f Added service to fetch sql query configurations.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff changeset
10 import javax.ws.rs.Produces;
6c26e6474c0f Added service to fetch sql query configurations.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff changeset
11 import javax.ws.rs.core.Context;
6c26e6474c0f Added service to fetch sql query configurations.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff changeset
12 import javax.ws.rs.core.HttpHeaders;
6c26e6474c0f Added service to fetch sql query configurations.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff changeset
13 import javax.ws.rs.core.UriInfo;
6c26e6474c0f Added service to fetch sql query configurations.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff changeset
14
6c26e6474c0f Added service to fetch sql query configurations.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff changeset
15 import de.intevation.lada.auth.Authentication;
6c26e6474c0f Added service to fetch sql query configurations.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff changeset
16 import de.intevation.lada.auth.AuthenticationException;
6c26e6474c0f Added service to fetch sql query configurations.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff changeset
17 import de.intevation.lada.model.LOrt;
6c26e6474c0f Added service to fetch sql query configurations.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff changeset
18
6c26e6474c0f Added service to fetch sql query configurations.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff changeset
19 /**
6c26e6474c0f Added service to fetch sql query configurations.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff changeset
20 * This class produces a RESTful service to read, write and update
6c26e6474c0f Added service to fetch sql query configurations.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff changeset
21 * LOrt objects.
6c26e6474c0f Added service to fetch sql query configurations.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff changeset
22 *
6c26e6474c0f Added service to fetch sql query configurations.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff changeset
23 * @author <a href="mailto:torsten.irlaender@intevation.de">Torsten Irländer</a>
6c26e6474c0f Added service to fetch sql query configurations.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff changeset
24 */
6c26e6474c0f Added service to fetch sql query configurations.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff changeset
25 @Path("/query")
6c26e6474c0f Added service to fetch sql query configurations.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff changeset
26 @RequestScoped
6c26e6474c0f Added service to fetch sql query configurations.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff changeset
27 public class QueryService
6c26e6474c0f Added service to fetch sql query configurations.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff changeset
28 {
6c26e6474c0f Added service to fetch sql query configurations.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff changeset
29 /**
6c26e6474c0f Added service to fetch sql query configurations.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff changeset
30 * The authorization module.
6c26e6474c0f Added service to fetch sql query configurations.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff changeset
31 */
6c26e6474c0f Added service to fetch sql query configurations.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff changeset
32 @Inject
6c26e6474c0f Added service to fetch sql query configurations.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff changeset
33 @Named("ldapauth")
6c26e6474c0f Added service to fetch sql query configurations.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff changeset
34 private Authentication authentication;
6c26e6474c0f Added service to fetch sql query configurations.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff changeset
35
6c26e6474c0f Added service to fetch sql query configurations.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff changeset
36 /**
6c26e6474c0f Added service to fetch sql query configurations.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff changeset
37 * Request SQL-Queries
6c26e6474c0f Added service to fetch sql query configurations.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff changeset
38 *
6c26e6474c0f Added service to fetch sql query configurations.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff changeset
39 * Query parameters are used for the filter in form of key-value pairs.
6c26e6474c0f Added service to fetch sql query configurations.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff changeset
40 *
6c26e6474c0f Added service to fetch sql query configurations.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff changeset
41 * @param info The URL query parameters.
6c26e6474c0f Added service to fetch sql query configurations.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff changeset
42 * @param headers The HTTP header containing authorization information.
6c26e6474c0f Added service to fetch sql query configurations.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff changeset
43 * @return Response object.
6c26e6474c0f Added service to fetch sql query configurations.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff changeset
44 */
6c26e6474c0f Added service to fetch sql query configurations.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff changeset
45 @GET
6c26e6474c0f Added service to fetch sql query configurations.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff changeset
46 @Produces("text/json")
6c26e6474c0f Added service to fetch sql query configurations.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff changeset
47 public Response filter(
6c26e6474c0f Added service to fetch sql query configurations.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff changeset
48 @Context UriInfo info,
6c26e6474c0f Added service to fetch sql query configurations.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff changeset
49 @Context HttpHeaders headers
6c26e6474c0f Added service to fetch sql query configurations.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff changeset
50 ) {
6c26e6474c0f Added service to fetch sql query configurations.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff changeset
51 try {
6c26e6474c0f Added service to fetch sql query configurations.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff changeset
52 if (!authentication.isAuthorizedUser(headers)) {
6c26e6474c0f Added service to fetch sql query configurations.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff changeset
53 return new Response(false, 699, new ArrayList<LOrt>());
6c26e6474c0f Added service to fetch sql query configurations.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff changeset
54 }
6c26e6474c0f Added service to fetch sql query configurations.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff changeset
55 String queries = this.loadQueryConfig();
6c26e6474c0f Added service to fetch sql query configurations.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff changeset
56 Response response = new Response(true, 200, queries);
6c26e6474c0f Added service to fetch sql query configurations.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff changeset
57 return response;
6c26e6474c0f Added service to fetch sql query configurations.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff changeset
58 }
6c26e6474c0f Added service to fetch sql query configurations.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff changeset
59 catch(AuthenticationException ae) {
6c26e6474c0f Added service to fetch sql query configurations.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff changeset
60 return new Response(false, 699, new ArrayList<LOrt>());
6c26e6474c0f Added service to fetch sql query configurations.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff changeset
61 }
6c26e6474c0f Added service to fetch sql query configurations.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff changeset
62 }
6c26e6474c0f Added service to fetch sql query configurations.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff changeset
63
6c26e6474c0f Added service to fetch sql query configurations.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff changeset
64 private String loadQueryConfig() {
6c26e6474c0f Added service to fetch sql query configurations.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff changeset
65 String query = "[]";
6c26e6474c0f Added service to fetch sql query configurations.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff changeset
66 return query;
6c26e6474c0f Added service to fetch sql query configurations.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff changeset
67 }
6c26e6474c0f Added service to fetch sql query configurations.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff changeset
68 }
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)