Project

General

Profile

1
package eu.dnetlib.data.claims.migration.handler;
2

    
3
import eu.dnetlib.data.claims.migration.JsonldBuilder;
4
import eu.dnetlib.data.claims.migration.entity.Claim;
5
import eu.dnetlib.data.claims.migration.entity.Project;
6
import eu.dnetlib.data.claimsDemo.QueryGenerator;
7
import eu.dnetlib.data.claimsDemo.SQLStoreException;
8
import eu.dnetlib.data.claimsDemo.SqlDAO;
9
import org.apache.log4j.Logger;
10

    
11
import java.sql.Array;
12
import java.sql.ResultSet;
13
import java.text.DateFormat;
14
import java.text.SimpleDateFormat;
15
import java.util.ArrayList;
16
import java.util.Date;
17
import java.util.List;
18
import java.util.UUID;
19

    
20
/**
21
 * Created by konstantina on 10/4/2017.
22
 */
23
public class FetchProjectHandler {
24
    private Logger log = Logger.getLogger(this.getClass());
25

    
26
    SqlDAO sqlDAO = null;
27
    QueryGenerator queryGenerator = null;
28

    
29
    public FetchProjectHandler(){
30

    
31
    }
32

    
33
    public String fetchProjectIdByTokenAndEmail(String token, String email) throws Exception, SQLStoreException {
34
        String openaireId = null;
35
        ArrayList<Object> params = new ArrayList<>();
36
        String query = queryGenerator.generateSelectProjectIdByTokenAndEmailQuery(token, email, params);
37
        ResultSet rs = sqlDAO.executePreparedQuery(query, params);
38

    
39
        if(rs.next()) {
40
            openaireId = rs.getString(1);
41
        }
42
        rs.close();
43
        return openaireId;
44
    }
45

    
46
    public String fetchProjectIdByToken(String token) throws Exception, SQLStoreException {
47
        String openaireId = null;
48
        ArrayList<Object> params = new ArrayList<>();
49
        String query = queryGenerator.generateSelectProjectIdByTokenQuery(token, params);
50
        ResultSet rs = sqlDAO.executePreparedQuery(query, params);
51

    
52
        if(rs.next()) {
53
            openaireId = rs.getString(1);
54
        }
55
        rs.close();
56
        return openaireId;
57
    }
58

    
59
    public Project fetchProjectById(String projectId) throws Exception, SQLStoreException {
60
        ArrayList<Object> params = new ArrayList<>();
61
        String query = queryGenerator.generateSelectProjectByIdQuery(projectId, params);
62
        ResultSet rs = sqlDAO.executePreparedQuery(query, params);
63

    
64
        Project project = fetchProjectByResultSet(rs);
65
        if(project == null) {
66
            log.info("No project with id : "+ projectId+"\n");
67
        }
68

    
69
        return project;
70
    }
71

    
72
    public List<String> fetchContactEmailsByProjectId(String projectId) throws Exception, SQLStoreException {
73
        ArrayList<Object> params = new ArrayList<>();
74
        String query = queryGenerator.generateSelectContactEmailsByProjectIdQuery(projectId, params);
75
        ResultSet rs = sqlDAO.executePreparedQuery(query, params);
76

    
77
        if(rs.next()) {
78
//            Array array = ((String[])rs.getArray(1));
79
            Array array = rs.getArray(1);
80
            if(array != null) {
81
                String[] str_array = (String[]) array.getArray();
82

    
83
                List<String> mails = new ArrayList<String>();
84
                for (int i = 0; i < str_array.length; i++) {
85
                    mails.add(str_array[i]);
86
                }
87
                return mails;
88
            }
89
        }
90
        return null;
91
    }
92

    
93
    public Project fetchProjectByResultSet(ResultSet rs) throws Exception {
94
        Project project = null;
95
        while(rs.next()) {
96
            project = new Project();
97
            project.setOpenaireId(rs.getString(1));
98
            project.setName(rs.getString(2));
99
            project.setAcronym(rs.getString(3));
100
            project.setFunderId(rs.getString(4));
101
            project.setFunderName(rs.getString(5));
102
            project.setFunderShortName(rs.getString(6));
103
            //project.setContactEmails((List<String>)rs.getArray(7));
104
        }
105
        return project;
106
    }
107

    
108
    public SqlDAO getSqlDAO() {
109
        return sqlDAO;
110
    }
111

    
112
    public void setSqlDAO(SqlDAO sqlDAO) {
113
        this.sqlDAO = sqlDAO;
114
    }
115

    
116
    public QueryGenerator getQueryGenerator() {
117
        return queryGenerator;
118
    }
119

    
120
    public void setQueryGenerator(QueryGenerator queryGenerator) {
121
        this.queryGenerator = queryGenerator;
122
    }
123
}
(8-8/12)