View Javadoc
1   package com.atlassian.refapp.charlie;
2   
3   import com.atlassian.plugin.web.WebInterfaceManager;
4   import com.atlassian.sal.api.pluginsettings.PluginSettingsFactory;
5   import com.atlassian.templaterenderer.TemplateRenderer;
6   
7   import javax.servlet.ServletException;
8   import javax.servlet.http.HttpServletRequest;
9   import javax.servlet.http.HttpServletResponse;
10  import java.io.IOException;
11  import java.util.HashMap;
12  import java.util.Map;
13  
14  /**
15   * @since v2.5.0
16   */
17  public class CharlieLandingPage extends CharlieServlet {
18      public CharlieLandingPage(PluginSettingsFactory pluginSettingsFactory, TemplateRenderer templateRenderer, WebInterfaceManager webInterfaceManager, CharlieStore store) {
19          super(pluginSettingsFactory, templateRenderer, webInterfaceManager, store);
20      }
21  
22      @Override
23      protected void doGet(HttpServletRequest req, HttpServletResponse response) throws ServletException, IOException {
24          final String key = getCharlieKeyFromPath(req);
25          final Map<String, Object> context = new HashMap<String, Object>();
26  
27          if (store.getCharlies().contains(key)) {
28              context.put("projectKey", key);
29              context.put("projectName", store.getCharlieName(key));
30              render("/templates/charlie.vm", context, response);
31          } else {
32              response.sendError(404, "Charlie with key " + key + " does not exist.");
33          }
34      }
35  
36      private String getCharlieKeyFromPath(HttpServletRequest req) {
37          final String[] elements = req.getPathInfo().split("/");
38          return elements[elements.length - 1];
39      }
40  }