Project

General

Profile

1
package eu.dnetlib.repo.manager.service.controllers;
2

    
3
import eu.dnetlib.api.functionality.ValidatorService;
4
import eu.dnetlib.api.functionality.ValidatorServiceException;
5
import eu.dnetlib.domain.functionality.validator.StoredJob;
6
import eu.dnetlib.repo.manager.shared.Constants;
7
import eu.dnetlib.repo.manager.shared.JobsOfUser;
8
import gr.uoa.di.driver.util.ServiceLocator;
9
import io.swagger.annotations.ApiParam;
10
import org.apache.log4j.Logger;
11
import org.json.JSONException;
12
import org.springframework.stereotype.Component;
13
import org.springframework.web.bind.annotation.RequestParam;
14

    
15
import javax.annotation.Resource;
16

    
17
@Component
18
public class MonitorApiImpl implements MonitorApi {
19

    
20
    @Resource(name = "validatorServiceLocator")
21
    private ServiceLocator<ValidatorService> validatorServiceLocator;
22

    
23
    private ValidatorService getValidationService() {
24
        return this.validatorServiceLocator.getService();
25
    }
26

    
27
    public ServiceLocator<ValidatorService> getValidatorServiceLocator() {
28
        return validatorServiceLocator;
29
    }
30

    
31
    public void setValidatorServiceLocator(ServiceLocator<ValidatorService> validatorServiceLocator) {
32
        this.validatorServiceLocator = validatorServiceLocator;
33
    }
34

    
35

    
36
    private static final Logger LOGGER = Logger
37
            .getLogger(MonitorApiImpl.class);
38

    
39
    @Override
40
    public JobsOfUser getJobsOfUser(@RequestParam("user") @ApiParam(value = "User email", required = true) String user,
41
                                    @RequestParam(value = "jobType", required = false)
42
                                    @ApiParam(value = "Equals to filter job type on validation history page") String jobType,
43
                                    @RequestParam("offset") @ApiParam(value = "Page number", required = true) String offset,
44
                                    @RequestParam(value = "limit", required = false,defaultValue = "10") @ApiParam(value = "Null value") String limit,
45
                                    @RequestParam(value = "dateFrom", required = false) @ApiParam(value = "Null value") String dateFrom,
46
                                    @RequestParam(value = "dateTo", required = false) @ApiParam(value = "Null value") String dateTo,
47
                                    @RequestParam("validationStatus") @ApiParam(value = "Equals to filter validation jobs", required = true) String validationStatus,
48
                                    @RequestParam("includeJobsTotal") @ApiParam(value = "Always true", required = true) String includeJobsTotal) throws JSONException, ValidatorServiceException {
49

    
50
        LOGGER.debug("Getting jobs of user : " + user);
51
        LOGGER.debug(user + "/" + jobType + "/" + offset + "/" + dateFrom + "/" + dateTo + "/" + validationStatus + "/" + includeJobsTotal);
52
        JobsOfUser retJobs = new JobsOfUser();
53
        LOGGER.debug("Size fo jobs list -> " + getValidationService().getStoredJobsNew(user, jobType, Integer.parseInt(offset),
54
                Integer.parseInt(limit), dateFrom, dateTo, validationStatus));
55
        retJobs.setJobs(getValidationService().getStoredJobsNew(user, jobType, Integer.parseInt(offset),
56
                Integer.parseInt(limit), dateFrom, dateTo, validationStatus));
57
        if (Boolean.parseBoolean(includeJobsTotal)) {
58
            retJobs.setTotalJobs(this.getJobsTotalNumberOfUser(user, jobType, null));
59
            retJobs.setTotalJobsSuccessful(this.getJobsTotalNumberOfUser(user, jobType, Constants.VALIDATION_JOB_STATUS_SUCCESSFUL));
60
            retJobs.setTotalJobsFailed(this.getJobsTotalNumberOfUser(user, jobType, Constants.VALIDATION_JOB_STATUS_FAILED));
61
            retJobs.setTotalJobsOngoing(this.getJobsTotalNumberOfUser(user, jobType,Constants.VALIDATION_JOB_STATUS_ONGOING));
62
        }
63
        return retJobs;
64

    
65
    }
66

    
67
    private int getJobsTotalNumberOfUser(String user, String jobType, String validationStatus) throws ValidatorServiceException {
68
        return  getValidationService().getStoredJobsTotalNumberNew(user, jobType, validationStatus);
69
    }
70

    
71
    @Override
72
    public int getJobsOfUserPerValidationStatus(String user,
73
                                                String jobType,
74
                                                String validationStatus) throws JSONException {
75
        LOGGER.debug("Getting job with validation status : " + validationStatus);
76
        try {
77
            return getValidationService().getStoredJobsTotalNumberNew(user, jobType, validationStatus);
78
        } catch (ValidatorServiceException e) {
79
            e.printStackTrace();
80
        }
81
        return 0;
82
    }
83

    
84
    @Override
85
    public StoredJob getJobSummary(String jobId,
86
                                   String groupBy) throws JSONException {
87
        LOGGER.debug("Getting job summary with id : " + jobId);
88
        try {
89
            return getValidationService().getStoredJob(Integer.parseInt(jobId), groupBy);
90
        } catch (ValidatorServiceException e) {
91
            e.printStackTrace();
92
        }
93
        return null;
94
    }
95

    
96
}
(4-4/12)