1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 package fr.paris.lutece.plugins.chatbot.modules.stationnement.web;
35
36 import java.io.IOException;
37 import java.util.HashMap;
38 import java.util.Map;
39
40 import javax.servlet.ServletException;
41 import javax.servlet.http.HttpServlet;
42 import javax.servlet.http.HttpServletRequest;
43 import javax.servlet.http.HttpServletResponse;
44
45 import org.apache.commons.io.IOUtils;
46
47 import com.fasterxml.jackson.databind.JsonNode;
48 import com.fasterxml.jackson.databind.ObjectMapper;
49
50 import fr.paris.lutece.portal.service.util.AppLogService;
51 import fr.paris.lutece.portal.service.util.AppPropertiesService;
52 import fr.paris.lutece.util.httpaccess.HttpAccess;
53 import fr.paris.lutece.util.httpaccess.HttpAccessException;
54
55 public class StationnementChatServlet extends HttpServlet
56 {
57
58 private static final String PROPERTY_TOKEN = "chatbot-stationnement.recast.token";
59 private static final String PROPERTY_DIALOG_API_URL = "recast.dialog.api.url";
60
61 private static final long serialVersionUID = -2387659805321292878L;
62
63 @Override
64 protected void service( HttpServletRequest request, HttpServletResponse response )
65 throws ServletException, IOException
66 {
67 String strBody = IOUtils.toString(request.getReader());
68 AppLogService.info ("Stationnement chat got request:" + strBody);
69
70 String strToken = AppPropertiesService.getProperty( PROPERTY_TOKEN );
71
72 HttpAccess client = new HttpAccess();
73 String strURL = AppPropertiesService.getProperty(PROPERTY_DIALOG_API_URL);
74
75 Map<String, String> headers = new HashMap<>();
76 headers.put( "Authorization", "Token " + strToken);
77
78 String strRecastResponse = null;
79 try
80 {
81 strRecastResponse = client.doPostJSON(strURL, strBody, headers, null);
82 }
83 catch (HttpAccessException ex)
84 {
85 AppLogService.error( "Error accessing recast API : " + ex.getMessage() , ex);
86 }
87
88 response.getWriter().print(strRecastResponse);
89 }
90 }