partly working security: registration form, authorization, simple authentification
[proteocache.git] / server / compbio / controllers / IPDataController.java
1 package compbio.controllers;
2
3 import java.security.Principal;
4 import java.util.List;
5 import java.util.Map;
6
7 import org.springframework.stereotype.Controller;
8 import org.springframework.web.bind.annotation.RequestMapping;
9 import org.springframework.web.bind.annotation.RequestMethod;
10 import org.springframework.web.bind.annotation.RequestParam;
11
12 import compbio.cassandra.TotalByCounterBean;
13 import compbio.cassandra.UserBean;
14 import compbio.statistic.CassandraRequester;
15
16 /**
17  * @author Alexander Sherstnev
18  * @author Natasha Sherstneva
19  */
20 @Controller
21 public class IPDataController {
22
23         @RequestMapping(value = "/admin/ip/counts/query", method = RequestMethod.GET)
24         public String initStatisticsForm(Map<String, Object> model, Principal principal) {
25                 model.put("username", principal.getName());
26                 model.put("value", 5);
27                 return "queryIPStatistics";
28         }
29
30         @RequestMapping(value = "/admin/ip/query", method = RequestMethod.GET)
31         public String initOneIPForm(Map<String, Object> model, Principal principal) {
32                 model.put("username", principal.getName());
33                 model.put("value", "127.0.0.1");
34                 return "queryIP";
35         }
36         
37         @RequestMapping(value = "/admin/ip/counts/results", method = RequestMethod.GET)
38         public String findIPwithCounter(@RequestParam("JobCounter") String counter, Map<String, Object> model, Principal principal) {
39                 model.put("username", principal.getName());
40                 if (counter.equals("")) {
41                         model.put("error", "The value must not be empty");
42                         model.put("value", counter);
43                         return "queryIPStatistics";
44                 }
45         
46                 int realcounter;
47                 try {
48                         realcounter = Integer.parseInt(counter.trim());
49                 } catch (NumberFormatException e) {
50                         model.put("error", "The value must be an integer number");
51                         model.put("value", counter);
52                         return "queryIPStatistics";
53                 }
54
55                 if (realcounter < 1) {
56                         model.put("error", "The value must be greater than 0");
57                         model.put("value", counter);
58                         return "queryIPStatistics";
59                 }
60
61                 final long startTime = System.currentTimeMillis();
62                 CassandraRequester cr = new CassandraRequester();
63                 List<TotalByCounterBean> r = cr.readIpByCounter(realcounter);
64                 model.put("results", r);
65                 model.put("njobs", 0);
66                 if (null != r) {
67                         model.put("njobs", r.size());
68                 }
69                 final long endTime = System.currentTimeMillis();
70                 model.put("timeExecution", (endTime - startTime));
71                 model.put("counter", realcounter);
72                 return "reportIPstatistics";
73         }
74
75         @RequestMapping(value = "/admin/ip/results", method = RequestMethod.GET)
76         public String findIP(@RequestParam("ip") String ip, Map<String, Object> model, Principal principal) {
77                 model.put("username", principal.getName());
78                 final long startTime = System.currentTimeMillis();
79                 CassandraRequester cr = new CassandraRequester();
80                 UserBean r = cr.readIp(ip);
81                 model.put("results", r);
82                 model.put("njobs", 0);
83                 if (null != r) {
84                         model.put("njobs", r.getMainInfo().size());
85                 }
86                 final long endTime = System.currentTimeMillis();
87                 model.put("timeExecution", (endTime - startTime));
88                 model.put("ip", ip);
89                 return "reportIP";
90         }
91 }