Project

General

Profile

1
package eu.dnetlib.repo.manager.api.application.rest;
2

    
3
import eu.dnetlib.repo.manager.api.application.utils.Converter;
4
import eu.dnetlib.domain.data.Repository;
5
import eu.dnetlib.domain.data.RepositoryInterface;
6
import org.json.JSONArray;
7
import org.json.JSONObject;
8
import org.springframework.beans.factory.annotation.Value;
9
import org.springframework.stereotype.Component;
10
import org.springframework.web.bind.annotation.PathVariable;
11
import org.springframework.web.bind.annotation.RequestBody;
12
import org.springframework.web.bind.annotation.RequestParam;
13
import java.util.List;
14

    
15

    
16
@Component
17
public class RepositoryApiImpl implements RepositoryApi {
18

    
19
    @Value("${api.baseAddress}")
20
    private String baseAddress;
21

    
22
    @Override
23
    public String getCountries()  {
24
        return RestService.executeGET(baseAddress + "/ds/countries");
25
    }
26

    
27

    
28
    @Override
29
    public List<Repository> getRepositoriesByCountry(@PathVariable("country") String country,
30
                                                     @PathVariable("page") String page,
31
                                                     @PathVariable("size") String size){
32
        String vars = page+"/"+size+"?country="+country;
33
        String uri = baseAddress+ "/ds/search/country/" + vars;
34
        JSONArray jsonArray = new JSONArray(RestService.executeGET(uri));
35
        return Converter.jsonToRepositoryList(jsonArray);
36
    }
37

    
38
    @Override
39
    public List<Repository> getRepositoriesOfUser(@PathVariable("userEmail") String userEmail,
40
                                                  @PathVariable("page") String page,
41
                                                  @PathVariable("size") String size)  {
42
        String vars = page+"/"+size+"?contactemail="+userEmail;
43
        String uri = baseAddress+ "/ds/search/email/" + vars;
44
        JSONArray jsonArray = new JSONArray(RestService.executeGET(uri));
45
        return Converter.jsonToRepositoryList(jsonArray);
46
    }
47

    
48
    @Override
49
    public Repository getRepositoryById(@PathVariable("id") String id)  {
50
        String uri = baseAddress+ "/ds/get/" + id;
51
        JSONObject jsonObject = new JSONObject( RestService.executeGET(uri) );
52
        return  Converter.jsonToRepositoryObject(jsonObject);
53
    }
54

    
55
    @Override
56
    public List<Repository> getRepositoriesByName(@PathVariable("name") String name,
57
                                                  @PathVariable("page") String page,
58
                                                  @PathVariable("size") String size) {
59
        String vars = page+"/"+size+"?name="+name;
60
        String uri = baseAddress+ "/ds/search/name/" + vars;
61
        JSONArray jsonArray = new JSONArray(RestService.executeGET(uri));
62
        return Converter.jsonToRepositoryList(jsonArray);
63
    }
64

    
65
    @Override
66
    public RepositoryInterface getRepositoyInterface(@PathVariable("id") String id) {
67
        String uri = baseAddress+ "/ds/api/" + id;
68
        JSONArray jsonArray = new JSONArray( RestService.executeGET(uri) );
69
        return  Converter.jsonToRepositoryInterfaceObject(jsonArray.getJSONObject(0));
70
    }
71

    
72
    @Override
73
    public String addRepository(@RequestBody Repository repository) {
74
        String uri = baseAddress+ "/ds/add/";
75
        return RestService.executePOST(uri, Converter.repositoryObjectToJson(repository));
76
    }
77

    
78
    @Override
79
    public String addRepositoryInterface(RepositoryInterface repositoryInterface) {
80
        String uri = baseAddress+ "/ds/api/add/";
81
        return RestService.executePOST(uri, Converter.repositoryInterfaceObjectToJson(repositoryInterface));
82
    }
83

    
84
    @Override
85
    public List<String> getDnetCountries() {
86
        return Converter.readFile("countries.txt");
87
    }
88

    
89
    @Override
90
    public List<String> getTypologies() {
91
        return Converter.readFile("typologies.txt");
92
    }
93

    
94
    @Override
95
    public List<String> getTimezones() {
96
        return Converter.readFile("timezones.txt");
97
    }
98

    
99
    @Override
100
    public String updateManagedStatus(@RequestParam(value = "id")   String id,
101
                                      @RequestParam(value = "managed")  String managed) {
102
        String uri = baseAddress+ "/ds/manage?id="+id+"&managed="+managed;
103
        return RestService.executePOST(uri,null);
104
    }
105

    
106
    @Override
107
    public String updateEnglishName(@RequestParam(value = "id")   String id,
108
                                    @RequestParam(value = "englishname")  String englishName) {
109
        String uri = baseAddress+ "/ds/manage?dsId="+id+"&englishname="+englishName;
110
        return RestService.executePOST(uri,null);
111
    }
112

    
113
    @Override
114
    public String updateLatitude(@RequestParam(value = "id")   String id,
115
                                 @RequestParam(value = "managed")  String latitude) {
116
        String uri = baseAddress+ "/ds/manage?dsId="+id+"&latitude="+latitude;
117
        return RestService.executePOST(uri,null);
118
    }
119

    
120
    @Override
121
    public String updateLongitude(@RequestParam(value = "id")   String id,
122
                                  @RequestParam(value = "longitude")  String longitude) {
123
        String uri = baseAddress+ "/ds/manage?dsId="+id+"&longitude="+longitude;
124
        return RestService.executePOST(uri,null);
125
    }
126

    
127
    @Override
128
    public String updateOfficialName(@RequestParam(value = "id")   String id,
129
                                     @RequestParam(value = "officialname")  String officialname) {
130
        String uri = baseAddress+ "/ds/manage?dsId="+id+"&officialname="+officialname;
131
        return RestService.executePOST(uri,null);
132
    }
133

    
134
    @Override
135
    public String getUrlsOfUserRepos(@PathVariable("user_email") String user_email) {
136

    
137
        //TODO create api a join datasource d for user u method
138

    
139
        return null;
140
    }
141

    
142

    
143
}
(8-8/11)