Project

General

Profile

1
package eu.dnetlib.uoaadmintools.controllers;
2

    
3
import eu.dnetlib.uoaadmintools.dao.*;
4
import eu.dnetlib.uoaadmintools.entities.*;
5
import org.apache.log4j.Logger;
6
import org.springframework.beans.factory.annotation.Autowired;
7
import org.springframework.web.bind.annotation.*;
8

    
9
import java.util.*;
10

    
11
@RestController
12
@CrossOrigin(origins = "*")
13
public class StatisticsController {
14
    private final Logger log = Logger.getLogger(this.getClass());
15

    
16
    @Autowired
17
    private StatisticsDAO statisticsDAO;
18

    
19
    @RequestMapping(value = "/statistics", method = RequestMethod.GET)
20
    public List<Statistics> getAllStatistics() {
21
        log.info("getAllStatistics");
22
            List<Statistics> statistics = statisticsDAO.findAll();
23
            return statistics;
24
    }
25

    
26

    
27

    
28
    @RequestMapping(value = "/statistics/{pid}", method = RequestMethod.GET)
29
    public Statistics getStatistics(@PathVariable(value = "pid") String pid) {
30
        Statistics statistics = statisticsDAO.findByPid(pid);
31

    
32
        return statistics;
33
    }
34

    
35
    @RequestMapping(value = "/statistics/save", method = RequestMethod.POST)
36
    public Statistics insertStatistics(@RequestBody Statistics statistics) {
37
        Statistics savedStatistics = statisticsDAO.save(statistics);
38
        return savedStatistics;
39
    }
40

    
41

    
42

    
43
    @RequestMapping(value = "/statistics/delete", method = RequestMethod.POST)
44
    public Boolean deleteStatistics(@RequestBody List<String> statistics) throws Exception {
45
        for (String id: statistics) {
46
            statisticsDAO.delete(id);
47
         }
48
        return true;
49
    }
50

    
51

    
52

    
53
    @RequestMapping(value = "statistics/{pid}/toggle", method = RequestMethod.POST)
54
    public Statistics togglePage(@PathVariable(value = "pid") String pid, @RequestBody String key, @RequestParam String status,  @RequestParam String statsPage) throws Exception {
55
        Statistics statistics = statisticsDAO.findByPid(pid);
56
        Map<String, StatisticsStatus> stats = statistics.getStatistics();
57

    
58
        StatisticsStatus statisticsStatus= stats.get(key);
59
        if(Boolean.parseBoolean(statsPage)){
60
            statisticsStatus.setShow(Boolean.parseBoolean(status));
61
        }else{
62
            statisticsStatus.setShowInDashboard(Boolean.parseBoolean(status));
63
        }
64
        stats.put(key,statisticsStatus);
65
        return statisticsDAO.save(statistics);
66
    }
67

    
68

    
69
}
(9-9/10)