c7d6155eb3f41f74a08da0777d5173328e234a45
[proteocache.git] / server / compbio / controllers / DatabaseController.java
1 package compbio.controllers;
2
3 import java.util.Calendar;
4 import java.util.Map;
5
6 import org.springframework.stereotype.Controller;
7 import org.springframework.web.bind.annotation.RequestMapping;
8 import org.springframework.web.bind.annotation.RequestMethod;
9 import org.springframework.web.bind.annotation.RequestParam;
10
11 import compbio.cassandra.CassandraRemover;
12 import compbio.cassandra.DateFormatter;
13
14 /**
15  * MVC controller for direct interaction with the internal DB
16  * 
17  * @author Alexander Sherstnev
18  * @author Natasha Sherstneva
19  * 
20  * @version 1.0
21  * @since Nov 2013
22  */
23 @Controller
24 public class DatabaseController extends BasicController {
25
26         @RequestMapping(value = "/database/remove", method = RequestMethod.GET)
27         public String initRemoveForm(Map<String, Object> model) {
28                 model.put("username", getPrincipalName());
29                 Calendar cal = Calendar.getInstance();
30                 String date2 = cal.get(Calendar.YEAR) + "/" + (cal.get(Calendar.MONTH) + 1) + "/" + cal.get(Calendar.DATE);
31                 cal.add(Calendar.DATE, -3);
32                 String date1 = cal.get(Calendar.YEAR) + "/" + (cal.get(Calendar.MONTH) + 1) + "/" + cal.get(Calendar.DATE);
33                 String jobid = "jp_NzBOJKo";
34
35                 model.put("samplejobid", jobid);
36                 model.put("date1", date1);
37                 model.put("date2", date2);
38                 model.put("sampleip", "127.0.0.1");
39                 model.put("sampleseq", "ATA");
40                 return "query/RemoveJobs";
41         }
42
43         @RequestMapping(value = "/database/state", method = RequestMethod.GET)
44         public String initDBStatRequest(Map<String, Object> model) {
45                 model.put("username", getPrincipalName());
46                 // return "queryDBState";
47                 return "support/Denied";
48         }
49
50         @RequestMapping(value = "/database/remove/go", method = RequestMethod.GET)
51         public String findIPwithCounter(@RequestParam("byId") String byId, @RequestParam("id") String jobid,
52                         @RequestParam("byDate") String byDate, @RequestParam("date1") String date1, @RequestParam("date2") String date2,
53                         @RequestParam("byIp") String byIp, @RequestParam("ip") String ip, @RequestParam("bySequence") String bySequence,
54                         @RequestParam("seq") String sequence, Map<String, Object> model) {
55                 model.put("username", getPrincipalName());
56
57                 model.put("byDate", byDate);
58                 model.put("date1", date1);
59                 model.put("date2", date2);
60
61                 model.put("byId", byId);
62                 model.put("id", jobid);
63
64                 model.put("byIp", byIp);
65                 model.put("ip", ip);
66
67                 model.put("bySequence", bySequence);
68                 model.put("seq", sequence);
69
70                 CassandraRemover cr = new CassandraRemover();
71                 int njobs1 = 0;
72                 int njobs2 = 0;
73                 int njobs3 = 0;
74                 int njobs4 = 0;
75                 if (byId.equals("on,off"))
76                         njobs1 = cr.RemoveJobById(jobid);
77                 if (byDate.equals("on,off")) {
78                         long longDate1 = DateFormatter.DateParsing(date1, formaterYYMMDD) / 1000;
79                         long longDate2 = DateFormatter.DateParsing(date2, formaterYYMMDD) / 1000;
80                         int timerange = (int)(longDate2 - longDate1) /24 / 3600 + 1;
81                         model.put("ndays", timerange);
82                         njobs2 = cr.RemoveJobByDate(date1, date2);
83                 }
84                 if (byIp.equals("on,off"))
85                         njobs3 = cr.RemoveJobByIp(ip);
86                 if (bySequence.equals("on,off"))
87                         njobs4 = cr.RemoveJobBySequence(sequence);
88                 model.put("njobs", njobs1 + njobs2 + njobs3 + njobs4);
89                 model.put("njobsbyDate", njobs2);
90                 model.put("njobsbyIP", njobs3);
91                 model.put("njobsbySeq", njobs4);
92
93                 return "reports/RemoveJobs";
94         }
95
96 }