Project

General

Profile

« Previous | Next » 

Revision 53113

Add repository snippet methods

View differences:

modules/uoa-repository-manager-service/branches/dev-api/src/main/java/eu/dnetlib/repo/manager/service/utils/Converter.java
3 3
import com.fasterxml.jackson.databind.ObjectMapper;
4 4
import eu.dnetlib.domain.data.Repository;
5 5
import eu.dnetlib.domain.data.RepositoryInterface;
6
import eu.dnetlib.repo.manager.service.domain.RepositorySnippet;
6 7
import eu.dnetlib.repo.manager.shared.AggregationDetails;
7 8
import eu.dnetlib.repo.manager.shared.Timezone;
8 9
import org.apache.commons.codec.digest.DigestUtils;
......
134 135
            return Double.valueOf(number);
135 136
    }
136 137

  
138
    public static List<RepositorySnippet> jsonToRepositorySnippetList(JSONObject json) throws JSONException {
139

  
140
        List<RepositorySnippet> resultSet = new ArrayList<>();
141
        JSONArray rs = json.getJSONArray("datasourceInfo");
142
        for(int i=0;i<rs.length();i++)
143
            resultSet.add(jsonToRepositorySnippetObject( rs.getJSONObject(i)) );
144
        return resultSet;
145
    }
146

  
147
    private static RepositorySnippet jsonToRepositorySnippetObject(JSONObject repositorySnippetObject) throws JSONException {
148

  
149

  
150
        RepositorySnippet repositorySnippet = new RepositorySnippet();
151

  
152
//        JSONObject datasource = repositorySnippetObject.getJSONObject("datasource");
153

  
154

  
155
        repositorySnippet.setId(repositorySnippetObject.get("id").toString());
156
        repositorySnippet.setOfficialname(repositorySnippetObject.get("officialname").toString());
157

  
158
        repositorySnippet.setEnglishname( repositorySnippetObject.get("englishname").toString());
159
        if(repositorySnippet.getEnglishname().equals("null"))
160
            repositorySnippet.setEnglishname("");
161

  
162
        repositorySnippet.setWebsiteurl(repositorySnippetObject.get("websiteurl").toString());
163
        if(repositorySnippet.getWebsiteurl().equals("null"))
164
            repositorySnippet.setWebsiteurl("");
165

  
166
        repositorySnippet.setRegisteredby(repositorySnippetObject.get("registeredby").toString());
167
        if(repositorySnippet.getRegisteredby().equals("null"))
168
            repositorySnippet.setRegisteredby("");
169
        return repositorySnippet;
170

  
171
    }
172

  
137 173
    public static List<Repository> jsonToRepositoryList(JSONObject json) throws JSONException {
138 174

  
139 175
        List<Repository> resultSet = new ArrayList<>();
......
247 283
        jsonObject.put("datauploadtype",repository.getDataUploadType());
248 284
        jsonObject.put("missionstatementurl",repository.getMissionStatementUrl());
249 285
        jsonObject.put("od_contenttypes",repository.getOdContentTypes());
250
        jsonObject.put("officialname",repository.getOfficialName());
286
        jsonObject.put("officialname",repository.getOfficialname());
251 287
        jsonObject.put("pidsystems",repository.getPidSystems());
252 288
        jsonObject.put("provenanceaction",repository.getProvenanceActionClass());
253 289
        jsonObject.put("qualitymanagementkind",repository.getQualityManagementKind());
......
374 410
            return repositoryId.split("::")[0] + "::" + DigestUtils.md5Hex(repositoryId.split("::")[1]);
375 411
        return null;
376 412
    }
413

  
377 414
}
modules/uoa-repository-manager-service/branches/dev-api/src/main/java/eu/dnetlib/repo/manager/service/controllers/RepositoryApi.java
2 2

  
3 3
import eu.dnetlib.domain.data.Repository;
4 4
import eu.dnetlib.domain.data.RepositoryInterface;
5
import eu.dnetlib.repo.manager.service.domain.RepositorySnippet;
5 6
import eu.dnetlib.repo.manager.service.exception.ResourceNotFoundException;
6 7
import eu.dnetlib.repo.manager.shared.*;
7 8
import io.swagger.annotations.Api;
8 9
import org.json.JSONException;
9 10
import org.springframework.http.MediaType;
10
import org.springframework.security.access.prepost.PostAuthorize;
11
import org.springframework.security.access.prepost.PreAuthorize;
12 11
import org.springframework.web.bind.annotation.*;
13 12

  
13
import java.io.IOException;
14 14
import java.util.List;
15 15
import java.util.Map;
16 16

  
......
27 27
    @RequestMapping(value = "/getRepositoriesByCountry/{country}/{mode}", method = RequestMethod.GET,
28 28
            produces = MediaType.APPLICATION_JSON_VALUE)
29 29
    @ResponseBody
30
    List<Repository> getRepositoriesByCountry(String country, String mode, Boolean managed) throws JSONException;
30
    List<RepositorySnippet> getRepositoriesByCountry(String country, String mode, Boolean managed) throws JSONException, IOException;
31 31

  
32 32
    @RequestMapping(value = "/getRepositoriesOfUser/{userEmail}/{page}/{size}",method = RequestMethod.GET,
33 33
            produces = MediaType.APPLICATION_JSON_VALUE)
modules/uoa-repository-manager-service/branches/dev-api/src/main/java/eu/dnetlib/repo/manager/service/controllers/RepositoryApiImpl.java
6 6
import eu.dnetlib.domain.data.Repository;
7 7
import eu.dnetlib.domain.data.RepositoryInterface;
8 8
import eu.dnetlib.domain.enabling.Vocabulary;
9
import eu.dnetlib.repo.manager.service.domain.RepositorySnippet;
9 10
import eu.dnetlib.repo.manager.service.domain.RequestFilter;
10 11
import eu.dnetlib.repo.manager.service.exception.ResourceNotFoundException;
11 12
import eu.dnetlib.repo.manager.service.utils.Converter;
......
35 36
import org.springframework.web.util.UriComponentsBuilder;
36 37

  
37 38
import javax.annotation.PostConstruct;
39
import java.io.IOException;
38 40
import java.sql.Timestamp;
39 41
import java.util.*;
40 42
import java.util.concurrent.ConcurrentHashMap;
......
143 145

  
144 146

  
145 147
    @Override
146
    public List<Repository> getRepositoriesByCountry(@PathVariable("country") String country,
147
                                                     @PathVariable("mode") String mode,
148
                                                     @RequestParam(value = "managed",required=false) Boolean managed) throws JSONException {
148
    public List<RepositorySnippet> getRepositoriesByCountry(@PathVariable("country") String country,
149
                                                            @PathVariable("mode") String mode,
150
                                                            @RequestParam(value = "managed",required=false) Boolean managed) throws JSONException, IOException {
149 151

  
150 152
        LOGGER.debug("Getting repositories by country!");
151 153
        int page = 0;
152 154
        int size = 100;
153
        List<Repository> resultSet = new ArrayList<>();
155
        List<RepositorySnippet> resultSet = new ArrayList<>();
156
        ObjectMapper mapper = new ObjectMapper();
154 157

  
155
        String countryCode = countriesMap.get(country);
156 158
        String filterKey = "UNKNOWN";
157 159
        if (mode.equalsIgnoreCase("opendoar"))
158 160
            filterKey = "openaire____::opendoar";
......
160 162
            filterKey = "openaire____::re3data";
161 163

  
162 164

  
163
        LOGGER.debug("Country code equals : " + countryCode);
165
        LOGGER.debug("Country code equals : " + country);
164 166
        LOGGER.debug("Filter mode equals : " + filterKey);
165 167

  
166
        UriComponents uriComponents = searchDatasource(String.valueOf(page),String.valueOf(size));
168
        UriComponents uriComponents = searchSnipperDatasource(String.valueOf(page),String.valueOf(size));
167 169
        RequestFilter requestFilter = new RequestFilter();
168
        requestFilter.setCountry(countryCode);
170
        requestFilter.setCountry(country);
171
        requestFilter.setCollectedfrom(filterKey);
169 172

  
170 173
        try{
171 174
            String rs = restTemplate.postForObject(uriComponents.toUri(),requestFilter, String.class);
172 175
            JSONArray jsonArray = (JSONArray) new JSONObject(rs).get("datasourceInfo");
173 176
            while (jsonArray.length() > 0 ) {
174
                resultSet.addAll(this.getRepositoriesByMode(filterKey, Converter.jsonToRepositoryList(new JSONObject(rs))));
177
                resultSet.addAll(mapper.readValue(String.valueOf(jsonArray),
178
                        mapper.getTypeFactory().constructCollectionType(List.class, RepositorySnippet.class)));
175 179
                page += 1;
176
                uriComponents = searchDatasource(String.valueOf(page),String.valueOf(size));
180
                uriComponents = searchSnipperDatasource(String.valueOf(page),String.valueOf(size));
177 181
                rs = restTemplate.postForObject(uriComponents.toUri(),requestFilter, String.class);
178 182
                jsonArray = (JSONArray) new JSONObject(rs).get("datasourceInfo");
179 183
            }
180
            for (Repository r : resultSet)
181
                this.updateRepositoryInfo(r);
182

  
183 184
            return resultSet;
184 185
        }catch (Exception e){
185 186
            LOGGER.debug("Exception on getRepositoriesByCountry" , e);
186
            emailUtils.reportException(e);
187
//            emailUtils.reportException(e);
187 188
            throw e;
188 189
        }
189 190

  
......
794 795
        return UriComponentsBuilder
795 796
                .fromHttpUrl(baseAddress + "/ds/search/")
796 797
                .path("/{page}/{size}/")
797
                .queryParam("requestSortBy","id")
798
                .queryParam("requestSortBy","officialname")
798 799
                .queryParam("order","ASCENDING")
799 800
                .build().expand(page, size).encode();
800 801
    }
801 802

  
803
    private UriComponents searchSnipperDatasource(String page,String size){
804

  
805
        return UriComponentsBuilder
806
                .fromHttpUrl(baseAddress + "/ds/searchsnippet/")
807
                .path("/{page}/{size}/")
808
                .queryParam("requestSortBy","officialname")
809
                .queryParam("order","ASCENDING")
810
                .build().expand(page, size).encode();
811
    }
812

  
802 813
    private String getRepositoryType(String typology){
803 814
        return invertedDataSourceClass.get(typology);
804 815
    }
modules/uoa-repository-manager-service/branches/dev-api/src/main/java/eu/dnetlib/repo/manager/service/domain/RepositorySnippet.java
1
package eu.dnetlib.repo.manager.service.domain;
2

  
3
import com.google.gwt.user.client.rpc.IsSerializable;
4

  
5
public class RepositorySnippet implements IsSerializable {
6

  
7
    private String id;
8
    private String officialname;
9
    private String englishname;
10
    private String websiteurl;
11
    private String registeredby;
12

  
13

  
14
    public RepositorySnippet() {}
15

  
16
    public String getId() {
17
        return id;
18
    }
19

  
20
    public void setId(String id) {
21
        this.id = id;
22
    }
23

  
24
    public String getOfficialname() {
25
        return officialname;
26
    }
27

  
28
    public void setOfficialname(String officialname) {
29
        this.officialname = officialname;
30
    }
31

  
32
    public String getEnglishname() {
33
        return englishname;
34
    }
35

  
36
    public void setEnglishname(String englishname) {
37
        this.englishname = englishname;
38
    }
39

  
40
    public String getWebsiteurl() {
41
        return websiteurl;
42
    }
43

  
44
    public void setWebsiteurl(String websiteurl) {
45
        this.websiteurl = websiteurl;
46
    }
47

  
48
    public String getRegisteredby() {
49
        return registeredby;
50
    }
51

  
52
    public void setRegisteredby(String registeredby) {
53
        this.registeredby = registeredby;
54
    }
55
}
modules/uoa-repository-manager-service/branches/dev-api/src/main/java/eu/dnetlib/repo/manager/service/domain/RequestFilter.java
10 10
    private String country = null;
11 11
    private String id = null;
12 12
    private String officialname = null;
13
    private String collectedfrom = null;
13 14

  
14 15

  
15 16
    public RequestFilter() {
......
55 56
    public void setOfficialname(String officialname) {
56 57
        this.officialname = officialname;
57 58
    }
59

  
60
    public String getCollectedfrom() {
61
        return collectedfrom;
62
    }
63

  
64
    public void setCollectedfrom(String collectedfrom) {
65
        this.collectedfrom = collectedfrom;
66
    }
58 67
}

Also available in: Unified diff