enable removing DB records from the Web (with admin role)
[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  * @author Alexander Sherstnev
16  * @author Natasha Sherstneva
17  */
18 @Controller
19 public class DatabaseController extends BasicController {
20
21         @RequestMapping(value = "/database/remove", method = RequestMethod.GET)
22         public String initRemoveForm(Map<String, Object> model) {
23                 model.put("username", getPrincipalName());
24                 Calendar cal = Calendar.getInstance();
25                 String date2 = cal.get(Calendar.YEAR) + "/" + (cal.get(Calendar.MONTH) + 1) + "/" + cal.get(Calendar.DATE);
26                 cal.add(Calendar.DATE, -3);
27                 String date1 = cal.get(Calendar.YEAR) + "/" + (cal.get(Calendar.MONTH) + 1) + "/" + cal.get(Calendar.DATE);
28                 String jobid = "jp_NzBOJKo";
29
30                 model.put("samplejobid", jobid);
31                 model.put("date1", date1);
32                 model.put("date2", date2);
33                 model.put("sampleip", "127.0.0.1");
34                 model.put("sampleseq", "ATA");
35                 return "query/RemoveJobs";
36         }
37
38         @RequestMapping(value = "/database/state", method = RequestMethod.GET)
39         public String initDBStatRequest(Map<String, Object> model) {
40                 model.put("username", getPrincipalName());
41                 // return "queryDBState";
42                 return "support/Denied";
43         }
44
45         @RequestMapping(value = "/database/remove/go", method = RequestMethod.GET)
46         public String findIPwithCounter(@RequestParam("byId") String byId, @RequestParam("id") String jobid,
47                         @RequestParam("byDate") String byDate, @RequestParam("date1") String date1, @RequestParam("date2") String date2,
48                         @RequestParam("byIp") String byIp, @RequestParam("ip") String ip, @RequestParam("bySequence") String bySequence,
49                         @RequestParam("seq") String sequence, Map<String, Object> model) {
50                 model.put("username", getPrincipalName());
51
52                 model.put("byDate", byDate);
53                 model.put("date1", date1);
54                 model.put("date2", date2);
55
56                 model.put("byId", byId);
57                 model.put("id", jobid);
58
59                 model.put("byIp", byIp);
60                 model.put("ip", ip);
61
62                 model.put("bySequence", bySequence);
63                 model.put("seq", sequence);
64
65                 CassandraRemover cr = new CassandraRemover();
66                 int njobs = 0;
67                 if (byId.equals("on,off"))
68                         njobs = cr.RemoveJobById(jobid);
69                 if (byDate.equals("on,off")) {
70                         long longDate1 = DateFormatter.DateParsing(date1, formaterYYMMDD) / 1000;
71                         long longDate2 = DateFormatter.DateParsing(date2, formaterYYMMDD) / 1000;
72                         int timerange = (int)(longDate2 - longDate1) /24 / 3600 + 1;
73                         model.put("ndays", timerange);
74                         njobs = cr.RemoveJobByDate(date1, date2);
75                 }
76                 if (byIp.equals("on,off"))
77                         njobs = cr.RemoveJobByIp(ip);
78                 if (bySequence.equals("on,off"))
79                         njobs = cr.RemoveJobBySequence(sequence);
80                 model.put("njobs", njobs);
81
82                 return "reports/RemoveJobs";
83         }
84
85 }