Mercurial > lada > lada-server
annotate src/main/java/de/intevation/lada/rest/importer/LafImportService.java @ 684:98d79aa9d996
Removed unused loggers.
author | Raimund Renkert <raimund.renkert@intevation.de> |
---|---|
date | Fri, 29 May 2015 13:09:37 +0200 |
parents | 3bbfdef05ee1 |
children | c81881dac97e |
rev | line source |
---|---|
612
23ab3247b36e
Added REST services for Im-/Export for laf files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
1 /* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz |
23ab3247b36e
Added REST services for Im-/Export for laf files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
2 * Software engineering by Intevation GmbH |
23ab3247b36e
Added REST services for Im-/Export for laf files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
3 * |
629
3bbfdef05ee1
Code documentation.
Raimund Renkert <rrenkert@intevation.de>
parents:
617
diff
changeset
|
4 * This file is Free Software under the GNU GPL (v>=3) |
3bbfdef05ee1
Code documentation.
Raimund Renkert <rrenkert@intevation.de>
parents:
617
diff
changeset
|
5 * and comes with ABSOLUTELY NO WARRANTY! Check out |
3bbfdef05ee1
Code documentation.
Raimund Renkert <rrenkert@intevation.de>
parents:
617
diff
changeset
|
6 * the documentation coming with IMIS-Labordaten-Application for details. |
612
23ab3247b36e
Added REST services for Im-/Export for laf files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
7 */ |
23ab3247b36e
Added REST services for Im-/Export for laf files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
8 package de.intevation.lada.rest.importer; |
23ab3247b36e
Added REST services for Im-/Export for laf files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
9 |
23ab3247b36e
Added REST services for Im-/Export for laf files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
10 import java.util.HashMap; |
23ab3247b36e
Added REST services for Im-/Export for laf files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
11 import java.util.Map; |
23ab3247b36e
Added REST services for Im-/Export for laf files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
12 |
23ab3247b36e
Added REST services for Im-/Export for laf files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
13 import javax.enterprise.context.RequestScoped; |
23ab3247b36e
Added REST services for Im-/Export for laf files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
14 import javax.inject.Inject; |
23ab3247b36e
Added REST services for Im-/Export for laf files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
15 import javax.servlet.http.HttpServletRequest; |
23ab3247b36e
Added REST services for Im-/Export for laf files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
16 import javax.ws.rs.Consumes; |
23ab3247b36e
Added REST services for Im-/Export for laf files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
17 import javax.ws.rs.POST; |
23ab3247b36e
Added REST services for Im-/Export for laf files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
18 import javax.ws.rs.Path; |
23ab3247b36e
Added REST services for Im-/Export for laf files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
19 import javax.ws.rs.Produces; |
23ab3247b36e
Added REST services for Im-/Export for laf files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
20 import javax.ws.rs.core.Context; |
23ab3247b36e
Added REST services for Im-/Export for laf files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
21 import javax.ws.rs.core.MediaType; |
23ab3247b36e
Added REST services for Im-/Export for laf files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
22 |
23ab3247b36e
Added REST services for Im-/Export for laf files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
23 import de.intevation.lada.importer.ImportConfig; |
23ab3247b36e
Added REST services for Im-/Export for laf files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
24 import de.intevation.lada.importer.ImportFormat; |
23ab3247b36e
Added REST services for Im-/Export for laf files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
25 import de.intevation.lada.importer.Importer; |
23ab3247b36e
Added REST services for Im-/Export for laf files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
26 import de.intevation.lada.util.annotation.AuthorizationConfig; |
23ab3247b36e
Added REST services for Im-/Export for laf files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
27 import de.intevation.lada.util.auth.Authorization; |
23ab3247b36e
Added REST services for Im-/Export for laf files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
28 import de.intevation.lada.util.auth.AuthorizationType; |
23ab3247b36e
Added REST services for Im-/Export for laf files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
29 import de.intevation.lada.util.auth.UserInfo; |
23ab3247b36e
Added REST services for Im-/Export for laf files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
30 import de.intevation.lada.util.rest.Response; |
23ab3247b36e
Added REST services for Im-/Export for laf files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
31 |
23ab3247b36e
Added REST services for Im-/Export for laf files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
32 /** |
23ab3247b36e
Added REST services for Im-/Export for laf files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
33 * This class produces a RESTful service to interact with probe objects. |
23ab3247b36e
Added REST services for Im-/Export for laf files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
34 * |
23ab3247b36e
Added REST services for Im-/Export for laf files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
35 * @author <a href="mailto:rrenkert@intevation.de">Raimund Renkert</a> |
23ab3247b36e
Added REST services for Im-/Export for laf files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
36 */ |
23ab3247b36e
Added REST services for Im-/Export for laf files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
37 @Path("import") |
23ab3247b36e
Added REST services for Im-/Export for laf files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
38 @RequestScoped |
23ab3247b36e
Added REST services for Im-/Export for laf files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
39 public class LafImportService { |
23ab3247b36e
Added REST services for Im-/Export for laf files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
40 |
629
3bbfdef05ee1
Code documentation.
Raimund Renkert <rrenkert@intevation.de>
parents:
617
diff
changeset
|
41 /** |
3bbfdef05ee1
Code documentation.
Raimund Renkert <rrenkert@intevation.de>
parents:
617
diff
changeset
|
42 * The importer |
3bbfdef05ee1
Code documentation.
Raimund Renkert <rrenkert@intevation.de>
parents:
617
diff
changeset
|
43 */ |
612
23ab3247b36e
Added REST services for Im-/Export for laf files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
44 @Inject |
23ab3247b36e
Added REST services for Im-/Export for laf files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
45 @ImportConfig(format=ImportFormat.LAF) |
23ab3247b36e
Added REST services for Im-/Export for laf files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
46 private Importer importer; |
23ab3247b36e
Added REST services for Im-/Export for laf files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
47 |
629
3bbfdef05ee1
Code documentation.
Raimund Renkert <rrenkert@intevation.de>
parents:
617
diff
changeset
|
48 /** |
3bbfdef05ee1
Code documentation.
Raimund Renkert <rrenkert@intevation.de>
parents:
617
diff
changeset
|
49 * The authorization module. |
3bbfdef05ee1
Code documentation.
Raimund Renkert <rrenkert@intevation.de>
parents:
617
diff
changeset
|
50 */ |
612
23ab3247b36e
Added REST services for Im-/Export for laf files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
51 @Inject |
23ab3247b36e
Added REST services for Im-/Export for laf files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
52 @AuthorizationConfig(type=AuthorizationType.OPEN_ID) |
23ab3247b36e
Added REST services for Im-/Export for laf files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
53 private Authorization authorization; |
23ab3247b36e
Added REST services for Im-/Export for laf files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
54 |
23ab3247b36e
Added REST services for Im-/Export for laf files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
55 /** |
629
3bbfdef05ee1
Code documentation.
Raimund Renkert <rrenkert@intevation.de>
parents:
617
diff
changeset
|
56 * Import a LAF formatted file. |
612
23ab3247b36e
Added REST services for Im-/Export for laf files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
57 * |
629
3bbfdef05ee1
Code documentation.
Raimund Renkert <rrenkert@intevation.de>
parents:
617
diff
changeset
|
58 * @param input String containing file content. |
612
23ab3247b36e
Added REST services for Im-/Export for laf files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
59 * @param header The HTTP header containing authorization information. |
23ab3247b36e
Added REST services for Im-/Export for laf files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
60 * @return Response object. |
23ab3247b36e
Added REST services for Im-/Export for laf files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
61 */ |
23ab3247b36e
Added REST services for Im-/Export for laf files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
62 @POST |
23ab3247b36e
Added REST services for Im-/Export for laf files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
63 @Path("/laf") |
23ab3247b36e
Added REST services for Im-/Export for laf files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
64 @Produces(MediaType.APPLICATION_JSON) |
23ab3247b36e
Added REST services for Im-/Export for laf files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
65 @Consumes(MediaType.TEXT_PLAIN) |
23ab3247b36e
Added REST services for Im-/Export for laf files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
66 public Response upload( |
23ab3247b36e
Added REST services for Im-/Export for laf files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
67 String content, |
23ab3247b36e
Added REST services for Im-/Export for laf files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
68 @Context HttpServletRequest request) { |
23ab3247b36e
Added REST services for Im-/Export for laf files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
69 UserInfo userInfo = authorization.getInfo(request); |
23ab3247b36e
Added REST services for Im-/Export for laf files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
70 |
23ab3247b36e
Added REST services for Im-/Export for laf files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
71 importer.doImport(content, userInfo); |
23ab3247b36e
Added REST services for Im-/Export for laf files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
72 Map<String, Object> respData = new HashMap<String,Object>(); |
23ab3247b36e
Added REST services for Im-/Export for laf files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
73 respData.put("errors", importer.getErrors()); |
23ab3247b36e
Added REST services for Im-/Export for laf files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
74 respData.put("warnings", importer.getWarnings()); |
23ab3247b36e
Added REST services for Im-/Export for laf files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
75 int code = 200; |
23ab3247b36e
Added REST services for Im-/Export for laf files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
76 Response response = new Response(importer.getErrors().isEmpty(), code, respData); |
23ab3247b36e
Added REST services for Im-/Export for laf files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
77 importer.reset(); |
23ab3247b36e
Added REST services for Im-/Export for laf files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
78 return response; |
23ab3247b36e
Added REST services for Im-/Export for laf files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
79 } |
23ab3247b36e
Added REST services for Im-/Export for laf files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
80 } |