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
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 }