Project

General

Profile

« Previous | Next » 

Revision 51032

A first for statistics collection and methods

View differences:

modules/uoa-admin-tools/init_db.js
2 2

  
3 3
use openaire_admin
4 4

  
5
drop = false;
5
drop = true;
6 6
if(drop) {
7 7
	db.dropDatabase()
8 8
}
......
15 15
	db.createCollection("entity")
16 16
	db.createCollection("page")
17 17
	db.createCollection("pageHelpContent")
18
	db.createCollection("statistics")
18 19

  
19 20
	db.entity.save({"pid" : "publication", "name" : "Publication"})
20 21
	db.entity.save({"pid" : "dataset", "name" : "Research Data"})
......
171 172
	db.divId.save({ "name" : "link-result-form", "pages" : [link, directLink], "community" : openaireCommunity})
172 173
	db.divId.save({ "name" : "link-result-bulk", "pages" : [link], "community" : openaireCommunity})
173 174
	db.divId.save({ "name" : "link-metadata", "pages" : [link, directLink], "community" : openaireCommunity})
175

  
176
	var community_statistics = {}
177

  
178
    community_statistics["publicationsNumber"] = { "show" : true, "showInDashboard" : false };
179
    community_statistics["publicationsProjectNumber"] = { "show" : true, "showInDashboard" : false };
180
    community_statistics["publicationsOpenNumber"] = { "show" : true, "showInDashboard" : false };
181
    community_statistics["publicationsClosedNumber"] = { "show" : true, "showInDashboard" : false };
182
    community_statistics["publicationsEmbargoNumber"] = { "show" : true, "showInDashboard" : false };
183

  
184
    community_statistics["datasetsNumber"] = { "show" : true, "showInDashboard" : false };
185
    community_statistics["datasetsProjectNumber"] = { "show" : true, "showInDashboard" : false };
186
    community_statistics["datasetsOpenNumber"] = { "show" : true, "showInDashboard" : false };
187
    community_statistics["datasetsClosedNumber"] = { "show" : true, "showInDashboard" : false };
188
    community_statistics["datasetsEmbargoNumber"] = { "show" : true, "showInDashboard" : false };
189

  
190
    community_statistics["softwareNumber"] = { "show" : true, "showInDashboard" : false };
191
    community_statistics["softwareProjectNumber"] = { "show" : true, "showInDashboard" : false };
192
    community_statistics["softwareOpenNumber"] = { "show" : true, "showInDashboard" : false };
193
    community_statistics["softwareClosedNumber"] = { "show" : true, "showInDashboard" : false };
194
    community_statistics["softwareEmbargoNumber"] = { "show" : true, "showInDashboard" : false };
195

  
196
    community_statistics["publicationsTimeline"] = { "show" : true, "showInDashboard" : false };
197
    community_statistics["datasetsTimeline"] = { "show" : true, "showInDashboard" : false };
198
    community_statistics["softwareTimeline"] = { "show" : true, "showInDashboard" : false };
199

  
200
    community_statistics["publicationsProjectColumn"] = { "show" : true, "showInDashboard" : false };
201
    community_statistics["publicationsProjectPie"] = { "show" : true, "showInDashboard" : false };
202
    community_statistics["publicationsProjectTable"] = { "show" : true, "showInDashboard" : false };
203

  
204
    community_statistics["datasetsProjectColumn"] = { "show" : true, "showInDashboard" : false };
205
    community_statistics["datasetsProjectPie"] = { "show" : true, "showInDashboard" : false };
206
    community_statistics["datasetsProjectTable"] = { "show" : true, "showInDashboard" : false };
207

  
208
    community_statistics["softwareProjectColumn"] = { "show" : true, "showInDashboard" : false };
209
    community_statistics["softwareProjectPie"] = { "show" : true, "showInDashboard" : false };
210
    community_statistics["softwareProjectTable"] = { "show" : true, "showInDashboard" : false };
211

  
212
    db.statistics.save({ "pid" : "openaire", "statistics" : community_statistics})
174 213
}
modules/uoa-admin-tools/src/test/java/eu/dnetlib/uoaadmintools/UoaAdminToolsApplicationTests.java
1 1
package eu.dnetlib.uoaadmintools;
2 2

  
3 3
import eu.dnetlib.uoaadmintools.dao.*;
4
import eu.dnetlib.uoaadmintools.entities.Community;
5
import eu.dnetlib.uoaadmintools.entities.Entity;
6
import eu.dnetlib.uoaadmintools.entities.Page;
7
import eu.dnetlib.uoaadmintools.entities.PageHelpContent;
4
import eu.dnetlib.uoaadmintools.entities.*;
8 5
import org.junit.Test;
9 6
import org.junit.runner.RunWith;
10 7
import org.springframework.beans.factory.annotation.Autowired;
11 8
import org.springframework.boot.test.context.SpringBootTest;
12 9
import org.springframework.test.context.junit4.SpringRunner;
13 10

  
14
import java.util.ArrayList;
15 11
import java.util.HashMap;
16 12
import java.util.List;
17 13
import java.util.Map;
18 14

  
19
import static javax.swing.text.html.HTML.Tag.P;
20

  
21 15
@RunWith(SpringRunner.class)
22 16
@SpringBootTest
23 17
public class UoaAdminToolsApplicationTests {
......
34 28
	@Autowired
35 29
	private PageHelpContentDAO pageHelpContentDAO;
36 30

  
31
	@Autowired
32
	private StatisticsDAO statisticsDAO;
33

  
37 34
/*
38 35

  
39 36
	@Test
......
167 164
	@Test
168 165
	public void contextLoads() {
169 166
	}
167
	@Test
168
	public void testStatistics() {
169
//		Statistics stats= new Statistics("openiare");
170
//		Statistics saved = statisticsDAO.save(stats);
171
//		System.out.println(saved);
172
//		Statistics stats = statisticsDAO.findByPid("openaire");
173
//		System.out.println(stats.toString());
174
		List<Statistics> statisticsList = statisticsDAO.findAll();
175
		for(Statistics stat:statisticsList){
176
			System.out.println(stat.toString());
177
		}
178
//		statisticsDAO.delete("5a9d0c71f9084558aad0fb3d");
179
//		statisticsList = statisticsDAO.findAll();
180
//		for(Statistics stats:statisticsList){
181
//			System.out.println(stats.toString());
182
//		}
183
//		statisticsDAO.deleteAll();
184
	}
185
	@Test
186
	public void createStatistics() {
187
		List<Community> communities =  communityDAO.findAll();
188
		for(Community c:communities){
170 189

  
190
			String pid = c.getPid();
191
			System.out.println("Community :" +pid);
192
			Statistics stats = statisticsDAO.findByPid(pid);
193
			if(stats == null){
194
				Statistics statistics = new Statistics(pid);
195
				statisticsDAO.save(statistics);
196
				System.out.println("Saved stats for :" +pid);
197
			}
198
		}
199

  
200
	}
171 201
}
modules/uoa-admin-tools/src/main/java/eu/dnetlib/uoaadmintools/dao/StatisticsDAO.java
1
package eu.dnetlib.uoaadmintools.dao;
2

  
3

  
4
import eu.dnetlib.uoaadmintools.entities.Statistics;
5

  
6
import java.util.List;
7

  
8
/**
9
 * Created by argirok on 5/3/2018.
10
 */
11
public interface StatisticsDAO {
12
    List<Statistics> findAll();
13

  
14
    Statistics findById(String Id);
15

  
16
    Statistics findByPid(String Pid);
17

  
18
    Statistics save(Statistics statistic);
19

  
20
    void deleteAll();
21

  
22
    void delete(String id);
23
}
modules/uoa-admin-tools/src/main/java/eu/dnetlib/uoaadmintools/dao/MongoDBStatisticsDAO.java
1
package eu.dnetlib.uoaadmintools.dao;
2

  
3
import eu.dnetlib.uoaadmintools.entities.Statistics;
4
import org.springframework.data.mongodb.repository.MongoRepository;
5

  
6
import java.util.List;
7

  
8
public interface MongoDBStatisticsDAO extends StatisticsDAO, MongoRepository<Statistics, String> {
9
    List<Statistics> findAll();
10

  
11
    Statistics findById(String Id);
12

  
13
    Statistics findByPid(String Pid);
14

  
15
    Statistics save(Statistics statistic);
16

  
17
    void deleteAll();
18

  
19
    void delete(String id);
20
}
21

  
modules/uoa-admin-tools/src/main/java/eu/dnetlib/uoaadmintools/entities/Statistics.java
1
package eu.dnetlib.uoaadmintools.entities;
2

  
3
import com.fasterxml.jackson.annotation.JsonProperty;
4
import org.springframework.data.annotation.Id;
5

  
6
import java.util.HashMap;
7
import java.util.Map;
8

  
9
/**
10
 * Created by argirok on 5/3/2018.
11
 */
12
public class Statistics {
13
    @Id
14
    @JsonProperty("_id")
15
    private String id;
16
    private String pid;
17
    private Map<String, StatisticsStatus> statistics;
18

  
19
    public Statistics(String pid){
20
        this.setPid(pid);
21
        this.statistics =  new HashMap<String, StatisticsStatus>();
22

  
23
        this.statistics.put("publicationsNumber", new StatisticsStatus());
24
        this.statistics.put("publicationsProjectNumber", new StatisticsStatus());
25
        this.statistics.put("publicationsOpenNumber", new StatisticsStatus());
26
        this.statistics.put("publicationsClosedNumber", new StatisticsStatus());
27
        this.statistics.put("publicationsEmbargoNumber", new StatisticsStatus());
28

  
29
        this.statistics.put("datasetsNumber", new StatisticsStatus());
30
        this.statistics.put("datasetsProjectNumber", new StatisticsStatus());
31
        this.statistics.put("datasetsOpenNumber", new StatisticsStatus());
32
        this.statistics.put("datasetsClosedNumber", new StatisticsStatus());
33
        this.statistics.put("datasetsEmbargoNumber", new StatisticsStatus());
34

  
35
        this.statistics.put("softwareNumber", new StatisticsStatus());
36
        this.statistics.put("softwareProjectNumber", new StatisticsStatus());
37
        this.statistics.put("softwareOpenNumber", new StatisticsStatus());
38
        this.statistics.put("softwareClosedNumber", new StatisticsStatus());
39
        this.statistics.put("softwareEmbargoNumber", new StatisticsStatus());
40

  
41
        this.statistics.put("publicationsTimeline", new StatisticsStatus());
42
        this.statistics.put("datasetsTimeline", new StatisticsStatus());
43
        this.statistics.put("softwareTimeline", new StatisticsStatus());
44

  
45

  
46
        this.statistics.put("publicationsProjectColumn", new StatisticsStatus());
47
        this.statistics.put("publicationsProjectPie", new StatisticsStatus());
48
        this.statistics.put("publicationsProjectTable", new StatisticsStatus());
49

  
50
        this.statistics.put("datasetsProjectColumn", new StatisticsStatus());
51
        this.statistics.put("datasetsProjectPie", new StatisticsStatus());
52
        this.statistics.put("datasetsProjectTable", new StatisticsStatus());
53

  
54
        this.statistics.put("softwareProjectColumn", new StatisticsStatus());
55
        this.statistics.put("softwareProjectPie", new StatisticsStatus());
56
        this.statistics.put("softwareProjectTable", new StatisticsStatus());
57

  
58
    }
59

  
60
    public String getId() {
61
        return id;
62
    }
63

  
64
    public void setId(String id) {
65
        this.id = id;
66
    }
67

  
68
    public String getPid() {
69
        return pid;
70
    }
71

  
72
    public void setPid(String pid) {
73
        this.pid = pid;
74
    }
75

  
76
    public Map<String, StatisticsStatus> getStatistics() {
77
        return statistics;
78
    }
79

  
80
    public void setStatistics(Map<String, StatisticsStatus> statistics) {
81
        this.statistics = statistics;
82
    }
83

  
84
    @Override
85
    public String toString() {
86
        return "Statistics{" +
87
                "id='" + id + '\'' +
88
                ", pid='" + pid + '\'' +
89
                ", statistics=" + statistics +
90
                '}';
91
    }
92
}
modules/uoa-admin-tools/src/main/java/eu/dnetlib/uoaadmintools/entities/StatisticsStatus.java
1
package eu.dnetlib.uoaadmintools.entities;
2

  
3
/**
4
 * Created by argirok on 5/3/2018.
5
 */
6
public class StatisticsStatus {
7
    Boolean show = true;
8
    Boolean showInDashboard = false;
9

  
10
    public Boolean getShow() {
11
        return show;
12
    }
13

  
14
    public void setShow(Boolean show) {
15
        this.show = show;
16
    }
17

  
18
    public Boolean getShowInDashboard() {
19
        return showInDashboard;
20
    }
21

  
22
    public void setShowInDashboard(Boolean showInDashboard) {
23
        this.showInDashboard = showInDashboard;
24
    }
25

  
26
    @Override
27
    public String toString() {
28
        return "StatisticsStatus{" +
29
                "show=" + show +
30
                ", showInDashboard=" + showInDashboard +
31
                '}';
32
    }
33
}
modules/uoa-admin-tools/src/main/java/eu/dnetlib/uoaadmintools/controllers/StatisticsController.java
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
}

Also available in: Unified diff