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.JobsOfUser;
7
import eu.dnetlib.repo.manager.shared.Constants;
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 javax.annotation.Resource;
14

    
15
@Component
16
public class MonitorApiImpl implements MonitorApi {
17

    
18
    @Resource(name = "validatorServiceLocator")
19
    private ServiceLocator<ValidatorService> validatorServiceLocator;
20

    
21
    private ValidatorService getValidationService() {
22
        return this.validatorServiceLocator.getService();
23
    }
24

    
25
    public ServiceLocator<ValidatorService> getValidatorServiceLocator() {
26
        return validatorServiceLocator;
27
    }
28

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

    
33

    
34
    private static final Logger LOGGER = Logger
35
            .getLogger(MonitorApiImpl.class);
36

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

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

    
60
    }
61

    
62
    private int getJobsTotalNumberOfUser(String user, String jobType, String validationStatus) throws ValidatorServiceException {
63
        return  getValidationService().getStoredJobsTotalNumberNew(user, jobType, validationStatus);
64
    }
65

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

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

    
91
}
(4-4/12)