Project

General

Profile

« Previous | Next » 

Revision 61359

[Trunk | Orcid Service]:
1. pom.xml: Upgrade version of spring boot from 1.5.8.RELEASE to 1.5.11.RELEASE (for custom queries in DB).
2. dao/MongoDBDAOs: Deleted folder MongoDBDAOs and moved its files (MongoDBUserTokensDAO.java, MongoDBWorkDAO.java) to parent (/dao) folder.
3. dao/customDAOs: Added customDAOs folder and files MongoDBUserTokensDAOCustom.java, MongoDBWorkDAOCustom.java (interfaces for custom query methods - for metrics).
4. dao/customDAOsImpl: Added customDAOsImpl folder and files MongoDBUserTokensDAOImpl.java, MongoDBWorkDAOImpl.java (implementation of interfaces for custom query methods - for metrics).
5. services/MetricsService.java: Added service to call custom query methods for metrics.
6. MetricsController.java: Added controller for API methods to expose custom query methods for metrics.
7. WorkDAO.java: Changed method signature "Optional<Work> findById(String Id);" to return Optional<Work>.
8. MongoDBWorkDAO.java: Changed method signature "Optional<Work> findById(String Id);" to return Optional<Work> | [Bug fix] In method "findByPidsInAndOrcid()", first parameter is array, not list.

View differences:

modules/uoa-orcid-service/trunk/src/main/java/eu/dnetlib/uoaorcidservice/dao/MongoDBDAOs/MongoDBUserTokensDAO.java
1
package eu.dnetlib.uoaorcidservice.dao.MongoDBDAOs;
2

  
3
import eu.dnetlib.uoaorcidservice.dao.UserTokensDAO;
4
import eu.dnetlib.uoaorcidservice.entities.UserTokens;
5
import org.springframework.data.mongodb.repository.MongoRepository;
6

  
7
import java.util.List;
8

  
9
public interface MongoDBUserTokensDAO extends UserTokensDAO, MongoRepository<UserTokens, String> {
10

  
11
    List<UserTokens> findAll();
12

  
13
    UserTokens findByAaiId(String AaiId);
14

  
15
    UserTokens findByOrcid(String Orcid);
16

  
17
    UserTokens save(UserTokens userTokens);
18

  
19
    void deleteAll();
20

  
21
    void deleteByAaiId(String AaiId);
22

  
23
    void deleteByOrcid(String Orcid);
24
}
modules/uoa-orcid-service/trunk/src/main/java/eu/dnetlib/uoaorcidservice/dao/MongoDBDAOs/MongoDBWorkDAO.java
1
package eu.dnetlib.uoaorcidservice.dao.MongoDBDAOs;
2

  
3
import eu.dnetlib.uoaorcidservice.dao.WorkDAO;
4
import eu.dnetlib.uoaorcidservice.entities.Work;
5
import org.springframework.data.mongodb.repository.MongoRepository;
6

  
7
import java.util.List;
8

  
9
public interface MongoDBWorkDAO extends WorkDAO, MongoRepository<Work, String> {
10
    List<Work> findAll();
11

  
12
    Work findById(String Id);
13

  
14
//    List<Work> findByPidsContaining(String Pid);
15

  
16
//    Work findByPidsContainingAndOrcid(String Pid, String Orcid);
17

  
18
    List<Work> findByPidsInAndOrcid(List<String> Pids, String Orcid);
19

  
20
    List<Work> findByOrcidOrderByCreationDateDesc(String Orcid);
21
    List<Work> findByOrcid(String Orcid);
22

  
23
    Work findByPutCode(String putCode);
24

  
25
    Work save(Work work);
26

  
27
    void deleteAll();
28

  
29
    void deleteById(String Id);
30

  
31
    void deleteByPutCode(String PutCode);
32
}
modules/uoa-orcid-service/trunk/src/main/java/eu/dnetlib/uoaorcidservice/dao/customDAOs/MongoDBUserTokensDAOCustom.java
1
package eu.dnetlib.uoaorcidservice.dao.customDAOs;
2

  
3
import java.util.List;
4

  
5
public interface MongoDBUserTokensDAOCustom {
6
    List<Object> newUsersPerMonth();
7
    List<Object> newUsersPerYear();
8

  
9
    List<Object> tokensPerOrcid();
10
    List<Object> totalUniqueUsers();
11
}
modules/uoa-orcid-service/trunk/src/main/java/eu/dnetlib/uoaorcidservice/dao/customDAOs/MongoDBWorkDAOCustom.java
1
package eu.dnetlib.uoaorcidservice.dao.customDAOs;
2

  
3

  
4
import org.springframework.data.mongodb.repository.MongoRepository;
5

  
6
import java.util.List;
7

  
8
public interface MongoDBWorkDAOCustom {
9
    List<Object> worksPerDashboard();
10
    List<Object> worksPerYear();
11
    List<Object> worksPerYearAndMonth();
12
    List<Object> worksPerOrcid();
13

  
14
    List<Object> uniqueUsersWithLinksPerMonth();
15
    List<Object> uniqueUsersWithLinksPerYear();
16

  
17
    List<Object> totalWorks();
18
}
modules/uoa-orcid-service/trunk/src/main/java/eu/dnetlib/uoaorcidservice/dao/customDAOsImpl/MongoDBUserTokensDAOImpl.java
1
package eu.dnetlib.uoaorcidservice.dao.customDAOsImpl;
2

  
3
import com.mongodb.BasicDBObject;
4
import eu.dnetlib.uoaorcidservice.dao.customDAOs.MongoDBUserTokensDAOCustom;
5
import org.apache.log4j.Logger;
6
import org.springframework.beans.factory.annotation.Autowired;
7
import org.springframework.data.domain.Sort;
8
import org.springframework.data.mongodb.core.MongoTemplate;
9
import org.springframework.data.mongodb.core.aggregation.Aggregation;
10
import org.springframework.data.mongodb.core.aggregation.AggregationResults;
11
import org.springframework.data.mongodb.core.aggregation.DateOperators;
12

  
13
import java.util.List;
14

  
15
import static org.springframework.data.mongodb.core.aggregation.Aggregation.*;
16
import static org.springframework.data.mongodb.core.aggregation.Aggregation.newAggregationOptions;
17

  
18
public class MongoDBUserTokensDAOImpl implements MongoDBUserTokensDAOCustom {
19
    private final Logger log = Logger.getLogger(this.getClass());
20

  
21
    private final MongoTemplate mongoTemplate;
22

  
23
    @Autowired
24
    public MongoDBUserTokensDAOImpl(MongoTemplate mongoTemplate) {
25
        this.mongoTemplate = mongoTemplate;
26
    }
27

  
28

  
29
    //    monthly  new users grant openaire
30
//    db.userTokens.aggregate([{"$group":{  "_id":{    "date":{$dateToString: { format: "%Y-%m", date: "$creationDate" }},    orcid: "$orcid"   },  "count":{"$sum":1}}},{"$group":{  "_id":"$_id.date",  "count":{"$sum":1}}}, {$sort : { _id: 1 }} ])
31
    @Override
32
    public List<Object> newUsersPerMonth() {
33
        Aggregation agg = newAggregation(
34
                project("orcid")
35
                        .and(DateOperators.dateOf("creationDate").month()).as("month")
36
                        .and(DateOperators.dateOf("creationDate").year()).as("year"),
37
                group("month", "year", "orcid")
38
                        .count().as("orcid_works"),
39
                group("month", "year")
40
                        .count().as("works"),
41
                project("works")
42
                        .andInclude("month", "year")
43
        );
44

  
45
        AggregationResults<Object> results = mongoTemplate.aggregate(
46
                agg.withOptions(newAggregationOptions().cursor(new BasicDBObject()).build()),
47
                "userTokens", Object.class);
48
        List<Object> mappedResult = results.getMappedResults();
49
        return mappedResult;
50
    }
51

  
52
    //    yearly  new users grant openaire
53
//    db.userTokens.aggregate([{"$group":{  "_id":{    "date":{$dateToString: { format: "%Y", date: "$creationDate" }},    orcid: "$orcid"   },  "count":{"$sum":1}}},{"$group":{  "_id":"$_id.date",  "count":{"$sum":1}}}, {$sort : { _id: 1 }} ])
54
    @Override
55
    public List<Object> newUsersPerYear() {
56
        Aggregation agg = newAggregation(
57
                project("orcid")
58
                        .and(DateOperators.dateOf("creationDate").year()).as("year"),
59
                group("year", "orcid")
60
                        .count().as("orcid_works"),
61
                group("year")
62
                        .count().as("works"),
63
                project("works")
64
                        .andInclude("year")
65
        );
66

  
67
        AggregationResults<Object> results = mongoTemplate.aggregate(
68
                agg.withOptions(newAggregationOptions().cursor(new BasicDBObject()).build()),
69
                "userTokens", Object.class);
70
        List<Object> mappedResult = results.getMappedResults();
71
        return mappedResult;
72
    }
73

  
74

  
75
    @Override
76
    public List<Object> tokensPerOrcid() {
77
        Aggregation agg = newAggregation(
78
                group("orcid")
79
                        .count().as("tokens"),
80
                project("tokens").andInclude("orcid"),
81
                sort(Sort.Direction.DESC, "tokens")
82
        );
83

  
84
        AggregationResults<Object> results = mongoTemplate.aggregate(
85
                agg.withOptions(newAggregationOptions().cursor(new BasicDBObject()).build()),
86
                "userTokens", Object.class);
87
        List<Object> mappedResult = results.getMappedResults();
88
        return mappedResult;
89
    }
90

  
91
    @Override
92
    public List<Object> totalUniqueUsers() {
93
        Aggregation agg = newAggregation(
94
                group("orcid"),
95
                count().as("users"),
96
                project("users")
97
        );
98

  
99
        AggregationResults<Object> results = mongoTemplate.aggregate(
100
                agg.withOptions(newAggregationOptions().cursor(new BasicDBObject()).build()),
101
                "userTokens", Object.class);
102
        List<Object> mappedResult = results.getMappedResults();
103
        return mappedResult;
104
    }
105
}
modules/uoa-orcid-service/trunk/src/main/java/eu/dnetlib/uoaorcidservice/dao/customDAOsImpl/MongoDBWorkDAOImpl.java
1
package eu.dnetlib.uoaorcidservice.dao.customDAOsImpl;
2

  
3
import com.mongodb.BasicDBObject;
4
import eu.dnetlib.uoaorcidservice.dao.customDAOs.MongoDBWorkDAOCustom;
5
import org.apache.log4j.Logger;
6
import org.springframework.beans.factory.annotation.Autowired;
7
import org.springframework.beans.factory.annotation.Qualifier;
8
import org.springframework.context.annotation.Primary;
9
import org.springframework.data.domain.Sort;
10
import org.springframework.data.mongodb.core.MongoTemplate;
11
import org.springframework.data.mongodb.core.aggregation.*;
12

  
13
import java.util.List;
14

  
15
import static org.springframework.data.mongodb.core.aggregation.Aggregation.*;
16

  
17
public class MongoDBWorkDAOImpl implements MongoDBWorkDAOCustom {
18
    private final Logger log = Logger.getLogger(this.getClass());
19

  
20
    private final MongoTemplate mongoTemplate;
21

  
22
    @Autowired
23
    public MongoDBWorkDAOImpl(MongoTemplate mongoTemplate) {
24
        this.mongoTemplate = mongoTemplate;
25
    }
26

  
27

  
28
//    works per dashboard
29
//    db.work.aggregate(  { $group : {  _id : "$dashboard",   count: { $sum: 1 } } }, {$sort : { count: -1 }}  );
30
    @Override
31
    public List<Object> worksPerDashboard() {
32

  
33
        Aggregation agg = newAggregation(
34
                group("dashboard")
35
                        .count().as("works"),
36
                project("works")
37
                        .and("dashboard").previousOperation(),
38
                sort(Sort.Direction.DESC, "works")
39
        );
40

  
41
        AggregationResults<Object> results = mongoTemplate.aggregate(
42
                agg.withOptions(newAggregationOptions().cursor(new BasicDBObject()).build()),
43
                "work", Object.class);
44
        List<Object> mappedResult = results.getMappedResults();
45
        return mappedResult;
46

  
47
    }
48

  
49
//    Yearly work sum
50
//    db.work.aggregate( { $group : { _id : { $dateToString: { format: "%Y", date: "$creationDate" } }, count: { $sum: 1 } } } , {$sort : { _id: 1 }} );
51
    @Override
52
    public List<Object> worksPerYear() {
53
//        Aggregation agg = newAggregation(
54
////                project( "creationDate", "putCode" )
55
//
56
////                project().and("creationDate").as("creationDate").and("putCode").as("_id")
57
////                project("orcid", "putCode").and("year(creationDate)").as("_id")
58
//
59
////                group("year(creationDate)"),
60
////                project().and("year(creationDate)").previousOperation()
61
//
62
//
63
//                project().and(DateOperators.dateOf("creationDate").year()).as("field1")
64
//
65
////                project().andInclude("orcid", "putCode").and("year(creationDate)").previousOperation()
66
////                        .and("creationDate").previousOperation()
67
//        );
68

  
69

  
70
        Aggregation agg = newAggregation(
71
                project().and(DateOperators.dateOf("creationDate").year()).as("year"),
72
                group("year")
73
                        .count().as("works"),
74
                project("works")
75
                        .and("year").previousOperation()
76
        );
77

  
78
        AggregationResults<Object> results = mongoTemplate.aggregate(
79
                agg.withOptions(newAggregationOptions().cursor(new BasicDBObject()).build()),
80
                "work", Object.class);
81
        List<Object> mappedResult = results.getMappedResults();
82
        return mappedResult;
83

  
84
    }
85

  
86

  
87
//    Monthly work sum
88
//    db.work.aggregate( { $group : { _id : { $dateToString: { format: "%Y-%m", date: "$creationDate" } }, count: { $sum: 1 } } } , {$sort : { _id: 1 }} );
89
//    @Override
90
    public List<Object> worksPerYearAndMonth() {
91
        Aggregation agg = newAggregation(
92
                project()
93
                        .and(DateOperators.dateOf("creationDate").year()).as("year")
94
                        .and(DateOperators.dateOf("creationDate").month()).as("month"),
95
                group("month", "year")
96
                        .count().as("works"),
97
                project("works")
98
                        .andInclude("month", "year")
99
        );
100

  
101
        AggregationResults<Object> results = mongoTemplate.aggregate(
102
                agg.withOptions(newAggregationOptions().cursor(new BasicDBObject()).build()),
103
                "work", Object.class);
104
        List<Object> mappedResult = results.getMappedResults();
105
        return mappedResult;
106
    }
107

  
108
//    Work Count per orcid
109
//    db.work.aggregate(  { $group : {  _id : "$orcid",   count: { $sum: 1 } } }, {$sort : { count: -1 }}  );
110
    @Override
111
    public List<Object> worksPerOrcid() {
112
        Aggregation agg = newAggregation(
113
                group("orcid")
114
                        .count().as("works"),
115
                project("works")
116
                        .andInclude("orcid"),
117
                sort(Sort.Direction.DESC, "works")
118
        );
119

  
120
        AggregationResults<Object> results = mongoTemplate.aggregate(
121
                agg.withOptions(newAggregationOptions().cursor(new BasicDBObject()).build()),
122
                "work", Object.class);
123
        List<Object> mappedResult = results.getMappedResults();
124
        return mappedResult;
125
    }
126

  
127

  
128
//    monthly  usage: unique users that linked a work
129
//    db.work.aggregate([{"$group":{  "_id":{    "date":{$dateToString: { format: "%Y-%m", date: "$creationDate" }},    orcid: "$orcid"   },  "count":{"$sum":1}}},{"$group":{  "_id":"$_id.date",  "count":{"$sum":1}}}, {$sort : { _id: 1 }} ])
130
    @Override
131
    public List<Object> uniqueUsersWithLinksPerMonth() {
132
        Aggregation agg = newAggregation(
133
                project("orcid")
134
                        .and(DateOperators.dateOf("creationDate").month()).as("month")
135
                        .and(DateOperators.dateOf("creationDate").year()).as("year"),
136
                group("month", "year", "orcid")
137
                        .count().as("orcid_works"),
138
                group("month", "year")
139
                        .count().as("works"),
140
                project("works")
141
                        .andInclude("month", "year")
142
        );
143

  
144
        AggregationResults<Object> results = mongoTemplate.aggregate(
145
                agg.withOptions(newAggregationOptions().cursor(new BasicDBObject()).build()),
146
                "work", Object.class);
147
        List<Object> mappedResult = results.getMappedResults();
148
        return mappedResult;
149
    }
150

  
151
//    yearly  usage: unique users that linked a work
152
//    db.work.aggregate([{"$group":{  "_id":{    "date":{$dateToString: { format: "%Y", date: "$creationDate" }},    orcid: "$orcid"   },  "count":{"$sum":1}}},{"$group":{  "_id":"$_id.date",  "count":{"$sum":1}}}, {$sort : { _id: 1 }} ])
153
    @Override
154
    public List<Object> uniqueUsersWithLinksPerYear() {
155
        Aggregation agg = newAggregation(
156
                project("orcid")
157
                        .and(DateOperators.dateOf("creationDate").year()).as("year"),
158
                group("year", "orcid")
159
                        .count().as("orcid_works"),
160
                group("year")
161
                        .count().as("works"),
162
                project("works")
163
                        .andInclude("year")
164
        );
165

  
166
        AggregationResults<Object> results = mongoTemplate.aggregate(
167
                agg.withOptions(newAggregationOptions().cursor(new BasicDBObject()).build()),
168
                "work", Object.class);
169
        List<Object> mappedResult = results.getMappedResults();
170
        return mappedResult;
171
    }
172

  
173
    @Override
174
    public List<Object> totalWorks() {
175
        Aggregation agg = newAggregation(
176
                count().as("works"),
177
                project("works")
178
        );
179

  
180
        AggregationResults<Object> results = mongoTemplate.aggregate(
181
                agg.withOptions(newAggregationOptions().cursor(new BasicDBObject()).build()),
182
                "work", Object.class);
183
        List<Object> mappedResult = results.getMappedResults();
184
        return mappedResult;
185

  
186
//        return mongoTemplate.count(null, "work");
187
    }
188
}
modules/uoa-orcid-service/trunk/src/main/java/eu/dnetlib/uoaorcidservice/dao/WorkDAO.java
3 3
import eu.dnetlib.uoaorcidservice.entities.Work;
4 4

  
5 5
import java.util.List;
6
import java.util.Optional;
6 7

  
7 8
public interface WorkDAO {
8 9
    List<Work> findAll();
9 10

  
10
    Work findById(String Id);
11
    Optional<Work> findById(String Id);
11 12

  
12 13
//    List<Work> findByPidsContaining(String Pid);
13 14

  
modules/uoa-orcid-service/trunk/src/main/java/eu/dnetlib/uoaorcidservice/dao/MongoDBUserTokensDAO.java
1
package eu.dnetlib.uoaorcidservice.dao;
2

  
3
import eu.dnetlib.uoaorcidservice.dao.customDAOs.MongoDBUserTokensDAOCustom;
4
import eu.dnetlib.uoaorcidservice.entities.UserTokens;
5
import org.springframework.data.mongodb.repository.MongoRepository;
6
import org.springframework.stereotype.Repository;
7

  
8
import java.util.List;
9

  
10
@Repository
11
public interface MongoDBUserTokensDAO extends MongoDBUserTokensDAOCustom, UserTokensDAO, MongoRepository<UserTokens, String> {
12

  
13
    List<UserTokens> findAll();
14

  
15
    UserTokens findByAaiId(String AaiId);
16

  
17
    UserTokens findByOrcid(String Orcid);
18

  
19
    UserTokens save(UserTokens userTokens);
20

  
21
    void deleteAll();
22

  
23
    void deleteByAaiId(String AaiId);
24

  
25
    void deleteByOrcid(String Orcid);
26
}
modules/uoa-orcid-service/trunk/src/main/java/eu/dnetlib/uoaorcidservice/dao/MongoDBWorkDAO.java
1
package eu.dnetlib.uoaorcidservice.dao;
2

  
3
import eu.dnetlib.uoaorcidservice.dao.customDAOs.MongoDBWorkDAOCustom;
4
import eu.dnetlib.uoaorcidservice.entities.Work;
5
import org.springframework.data.mongodb.repository.MongoRepository;
6
import org.springframework.stereotype.Repository;
7

  
8
import java.util.List;
9
import java.util.Optional;
10

  
11
@Repository
12
public interface MongoDBWorkDAO extends MongoDBWorkDAOCustom, WorkDAO, MongoRepository<Work, String> {
13
    List<Work> findAll();
14

  
15
    Optional<Work> findById(String Id);
16

  
17
//    List<Work> findByPidsContaining(String Pid);
18

  
19
//    Work findByPidsContainingAndOrcid(String Pid, String Orcid);
20

  
21
    List<Work> findByPidsInAndOrcid(String[] Pids, String Orcid);
22

  
23
    List<Work> findByOrcidOrderByCreationDateDesc(String Orcid);
24
    List<Work> findByOrcid(String Orcid);
25

  
26
    Work findByPutCode(String putCode);
27

  
28
    Work save(Work work);
29

  
30
    void deleteAll();
31

  
32
    void deleteById(String Id);
33

  
34
    void deleteByPutCode(String PutCode);
35
}
modules/uoa-orcid-service/trunk/src/main/java/eu/dnetlib/uoaorcidservice/services/MetricsService.java
1
package eu.dnetlib.uoaorcidservice.services;
2

  
3
import eu.dnetlib.uoaorcidservice.dao.MongoDBUserTokensDAO;
4
import eu.dnetlib.uoaorcidservice.dao.customDAOs.MongoDBUserTokensDAOCustom;
5
import eu.dnetlib.uoaorcidservice.dao.customDAOs.MongoDBWorkDAOCustom;
6
import org.apache.log4j.Logger;
7
import org.springframework.beans.factory.annotation.Autowired;
8
import org.springframework.beans.factory.annotation.Qualifier;
9
import org.springframework.stereotype.Service;
10

  
11
import java.util.List;
12

  
13
@Service
14
public class MetricsService {
15
    private final Logger log = Logger.getLogger(this.getClass());
16

  
17
    @Autowired
18
    @Qualifier("mongoDBWorkDAO")
19
    private MongoDBWorkDAOCustom workDAO;
20

  
21
    @Autowired
22
    @Qualifier("mongoDBUserTokensDAO")
23
    private MongoDBUserTokensDAOCustom userTokensDAO;
24

  
25
    public List<Object> countWorksPerDashboard() {
26
        return workDAO.worksPerDashboard();
27
    }
28

  
29
    public List<Object> countWorksPerYear() {
30
        return workDAO.worksPerYear();
31
    }
32

  
33
    public List<Object> countWorksPerYearAndMonth() {
34
        return workDAO.worksPerYearAndMonth();
35
    }
36

  
37
    public List<Object> countWorksPerOrcid() {
38
        return workDAO.worksPerOrcid();
39
    }
40

  
41
    public List<Object> countUniqueUsersWithLinksPerMonth() {
42
        return workDAO.uniqueUsersWithLinksPerMonth();
43
    }
44

  
45
    public List<Object> countUniqueUsersWithLinksPerYear() {
46
        return workDAO.uniqueUsersWithLinksPerYear();
47
    }
48

  
49
    public List<Object> countNewUsersPerMonth() {
50
        return userTokensDAO.newUsersPerMonth();
51
    }
52

  
53
    public List<Object> countNewUsersPerYear() {
54
        return userTokensDAO.newUsersPerYear();
55
    }
56

  
57
    public List<Object> countTokensPerOrcid() {
58
        return userTokensDAO.tokensPerOrcid();
59
    }
60

  
61
    public List<Object> countTotalUniqueUsers() {
62
        return userTokensDAO.totalUniqueUsers();
63
    }
64

  
65
    public List<Object> countTotalWorks() {
66
        return workDAO.totalWorks();
67
    }
68
}
modules/uoa-orcid-service/trunk/src/main/java/eu/dnetlib/uoaorcidservice/controllers/MetricsController.java
1
package eu.dnetlib.uoaorcidservice.controllers;
2

  
3
import eu.dnetlib.uoaorcidservice.configuration.properties.OrcidConfig;
4
import eu.dnetlib.uoaorcidservice.services.MetricsService;
5
import org.apache.log4j.Logger;
6
import org.springframework.beans.factory.annotation.Autowired;
7
import org.springframework.web.bind.annotation.CrossOrigin;
8
import org.springframework.web.bind.annotation.RequestMapping;
9
import org.springframework.web.bind.annotation.RequestMethod;
10
import org.springframework.web.bind.annotation.RestController;
11

  
12
import java.util.List;
13

  
14
@RestController
15
@CrossOrigin(origins = "*")
16
public class MetricsController {
17
    private final Logger log = Logger.getLogger(this.getClass());
18
    private final Logger orcid_log = Logger.getLogger("ORCID-" + this.getClass().getName());
19

  
20
    @Autowired
21
    private MetricsService metricsService;
22

  
23

  
24
    @RequestMapping(value = "/report/worksPerDashboard", method = RequestMethod.GET)
25
    public List<Object> countWorksPerDashboard() {
26
        return metricsService.countWorksPerDashboard();
27
    }
28

  
29
    @RequestMapping(value = "/report/worksPerYear", method = RequestMethod.GET)
30
    public List<Object> countWorksPerYear() {
31
        return metricsService.countWorksPerYear();
32
    }
33

  
34
    @RequestMapping(value = "/report/worksPerYearAndMonth", method = RequestMethod.GET)
35
    public List<Object> countWorksPerYearAndMonth() {
36
        return metricsService.countWorksPerYearAndMonth();
37
    }
38

  
39
    @RequestMapping(value = "/report/worksPerOrcid", method = RequestMethod.GET)
40
    public List<Object> countWorksPerOrcid() {
41
        return metricsService.countWorksPerOrcid();
42
    }
43

  
44
    @RequestMapping(value = "/report/uniqueUsersWithLinksPerMonth", method = RequestMethod.GET)
45
    public List<Object> countUniqueUsersWithLinksPerMonth() {
46
        return metricsService.countUniqueUsersWithLinksPerMonth();
47
    }
48

  
49
    @RequestMapping(value = "/report/uniqueUsersWithLinksPerYear", method = RequestMethod.GET)
50
    public List<Object> countUniqueUsersWithLinksPerYear() {
51
        return metricsService.countUniqueUsersWithLinksPerYear();
52
    }
53

  
54
    @RequestMapping(value = "/report/newUsersPerMonth", method = RequestMethod.GET)
55
    public List<Object> countNewUsersPerMonth() {
56
        return metricsService.countNewUsersPerMonth();
57
    }
58

  
59
    @RequestMapping(value = "/report/newUsersPerYear", method = RequestMethod.GET)
60
    public List<Object> countNewUsersPerYear() {
61
        return metricsService.countNewUsersPerYear();
62
    }
63

  
64
    @RequestMapping(value = "/report/tokensPerOrcid", method = RequestMethod.GET)
65
    public List<Object> countTokensPerOrcid() {
66
        return metricsService.countTokensPerOrcid();
67
    }
68

  
69
    @RequestMapping(value = "/report/totalUniqueUsers", method = RequestMethod.GET)
70
    public List<Object> countTotalUniqueUsers() {
71
        return metricsService.countTotalUniqueUsers();
72
    }
73

  
74
    @RequestMapping(value = "/report/totalWorks", method = RequestMethod.GET)
75
    public List<Object> countTotalWorks() {
76
        return metricsService.countTotalWorks();
77
    }
78
}
modules/uoa-orcid-service/trunk/pom.xml
13 13
	<parent>
14 14
		<groupId>org.springframework.boot</groupId>
15 15
		<artifactId>spring-boot-starter-parent</artifactId>
16
		<version>1.5.8.RELEASE</version>
16
		<version>1.5.11.RELEASE</version>
17 17
		<relativePath/> <!-- lookup parent from repository -->
18 18
	</parent>
19 19

  

Also available in: Unified diff