new readers for the queries
[proteocache.git] / server / compbio / controllers / IPDataController.java
index c95a6cd..b01caa7 100644 (file)
@@ -8,7 +8,10 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.RequestParam;
 
-import compbio.cassandra.DataBase;
+import compbio.beans.TotalByCounterBean;
+import compbio.beans.UserBean;
+import compbio.cassandra.readers.IpReader;
+import compbio.cassandra.readers.ReaderByCounter;
 import compbio.statistic.CassandraRequester;
 
 /**
@@ -16,54 +19,72 @@ import compbio.statistic.CassandraRequester;
  * @author Natasha Sherstneva
  */
 @Controller
-public class IPDataController {
+public class IPDataController extends BasicController {
 
-       @RequestMapping(value = "/ip/stat", method = RequestMethod.GET)
+       @RequestMapping(value = "/admin/ip/counts/query", method = RequestMethod.GET)
        public String initStatisticsForm(Map<String, Object> model) {
+               model.put("username", getPrincipalName());
                model.put("value", 5);
-               return "queryIPStatistics";
+               return "query/IPStatistics";
        }
 
-       @RequestMapping(value = "/ip", method = RequestMethod.GET)
+       @RequestMapping(value = "/admin/ip/query", method = RequestMethod.GET)
        public String initOneIPForm(Map<String, Object> model) {
+               model.put("username", getPrincipalName());
                model.put("value", "127.0.0.1");
-               return "queryIP";
+               return "query/IP";
        }
-       
-       @RequestMapping(value = "/ip/stat/querycounter", method = RequestMethod.GET)
-       public String findIPwithCounter(@RequestParam("JobCounter") int counter, Map<String, Object> model) {
-               
-               if (counter < 1) {
+
+       @RequestMapping(value = "/admin/ip/counts/results", method = RequestMethod.GET)
+       public String findIPwithCounter(@RequestParam("JobCounter") String counter, Map<String, Object> model) {
+               model.put("username", getPrincipalName());
+               if (counter.equals("")) {
+                       model.put("error", "The value must not be empty");
+                       model.put("value", counter);
+                       return "query/IPStatistics";
+               }
+
+               int realcounter;
+               try {
+                       realcounter = Integer.parseInt(counter.trim());
+               } catch (NumberFormatException e) {
+                       model.put("error", "The value must be an integer number");
+                       model.put("value", counter);
+                       return "query/IPStatistics";
+               }
+
+               if (realcounter < 1) {
                        model.put("error", "The value must be greater than 0");
                        model.put("value", counter);
-                       return "queryIPStatistics";
+                       return "query/IPStatistics";
                }
 
                final long startTime = System.currentTimeMillis();
-               CassandraRequester cr = new CassandraRequester();
-               List<DataBase> r = cr.readIpByCounter(counter);
-               model.put("results", r);
+               ReaderByCounter reader = new ReaderByCounter();
+               List<TotalByCounterBean> r = reader.readIpByCounter(realcounter);
+               model.put("results", r);
                model.put("njobs", 0);
                if (null != r) {
                        model.put("njobs", r.size());
                }
-               final long endTime = System.currentTimeMillis();
+               final long endTime = System.currentTimeMillis();
                model.put("timeExecution", (endTime - startTime));
-               model.put("counter", counter);
+               model.put("counter", realcounter);
                return "reportIPstatistics";
        }
 
-       @RequestMapping(value = "/ip/query", method = RequestMethod.GET)
+       @RequestMapping(value = "/admin/ip/results", method = RequestMethod.GET)
        public String findIP(@RequestParam("ip") String ip, Map<String, Object> model) {
+               model.put("username", getPrincipalName());
                final long startTime = System.currentTimeMillis();
-               CassandraRequester cr = new CassandraRequester();
-               List<DataBase> r = cr.readIp(ip);
-               model.put("results", r);
+               IpReader reader = new IpReader();
+               UserBean r = reader.readIp(ip);
+               model.put("results", r);
                model.put("njobs", 0);
                if (null != r) {
-                       model.put("njobs", r.size());
+                       model.put("njobs", r.getMainInfo().size());
                }
-               final long endTime = System.currentTimeMillis();
+               final long endTime = System.currentTimeMillis();
                model.put("timeExecution", (endTime - startTime));
                model.put("ip", ip);
                return "reportIP";