Project

General

Profile

1
package eu.dnetlib.openaire.exporter.datasource;
2

    
3
import java.util.List;
4

    
5
import eu.dnetlib.openaire.exporter.model.datasource.BrowseTerm;
6
import eu.dnetlib.openaire.exporter.model.datasource.DatasourceResponse;
7
import eu.dnetlib.openaire.exporter.model.datasource.Response;
8
import eu.dnetlib.openaire.exporter.model.datasource.db.Api;
9
import eu.dnetlib.openaire.exporter.model.datasource.db.Datasource;
10
import eu.dnetlib.openaire.exporter.model.datasource.db.SearchInterfacesEntry;
11
import eu.dnetlib.openaire.exporter.vocabularies.Country;
12
import io.swagger.annotations.ApiOperation;
13
import io.swagger.annotations.ApiResponse;
14
import io.swagger.annotations.ApiResponses;
15

    
16
@io.swagger.annotations.Api(value = "datasources", description = "the datasource manager API")
17
public interface DatasourcesApi {
18

    
19
    @ApiOperation(value = "list identifiers", notes = "List the Datasource identifiers.", response = List.class)
20
    @ApiResponses(value = { 
21
        @ApiResponse(code = 200, message = "OK", response = String[].class),
22
        @ApiResponse(code = 500, message = "unexpected error", response = Response.class) })
23
    List<String> listIds(int page, int size) throws ApiException;
24

    
25
    @ApiOperation(value = "get datasource by id", notes = "Returns Datasource details.", response = DatasourceResponse.class)
26
    @ApiResponses(value = { 
27
        @ApiResponse(code = 200, message = "OK", response = DatasourceResponse[].class),
28
        @ApiResponse(code = 500, message = "unexpected error", response = Response.class) })
29
    DatasourceResponse getDs(String id);
30

    
31
    @ApiOperation(value = "search datasources by name", notes = "Returns list of Datasource details.", response = DatasourceResponse[].class)
32
    @ApiResponses(value = {
33
            @ApiResponse(code = 200, message = "OK", response = DatasourceResponse[].class),
34
            @ApiResponse(code = 500, message = "unexpected error", response = Response.class) })
35
    List<DatasourceResponse> searchByName(String name, int page, int size);
36

    
37
    @ApiOperation(value = "search datasources by contact email", notes = "Returns list of Datasource details.", response = DatasourceResponse[].class)
38
    @ApiResponses(value = {
39
            @ApiResponse(code = 200, message = "OK", response = DatasourceResponse[].class),
40
            @ApiResponse(code = 500, message = "unexpected error", response = Response.class) })
41
    List<DatasourceResponse> searchByContactemail(String contactemail, int page, int size);
42

    
43
    @ApiOperation(value = "search datasources by country", notes = "Returns list of Datasource details.", response = DatasourceResponse[].class)
44
    @ApiResponses(value = {
45
            @ApiResponse(code = 200, message = "OK", response = DatasourceResponse[].class),
46
            @ApiResponse(code = 500, message = "unexpected error", response = Response.class) })
47
    List<DatasourceResponse> searchByCountry(String country, int page, int size);
48

    
49
    @ApiOperation(value = "search among datasource APIs", notes = "Returns Datasource Api details.", response = SearchInterfacesEntry[].class)
50
    @ApiResponses(value = {
51
            @ApiResponse(code = 200, message = "OK", response = SearchInterfacesEntry[].class),
52
            @ApiResponse(code = 500, message = "unexpected error", response = Response.class) })
53
    List<SearchInterfacesEntry> searchInterface(String field, String value);
54

    
55
    @ApiOperation(value = "terms and count for the given field", notes = "Returns the list of BrowseTerms.", response = BrowseTerm[].class)
56
    @ApiResponses(value = {
57
            @ApiResponse(code = 200, message = "OK", response = BrowseTerm[].class),
58
            @ApiResponse(code = 500, message = "unexpected error", response = Response.class) })
59
    List<? extends BrowseTerm> browseField(String field) throws ApiException;
60

    
61
    @ApiOperation(value = "get the list of countries where exists at least one data source", notes = "Returns the list of countries where exists at least one data source.", httpMethod = "GET", response = Country.class)
62
    @ApiResponses(value = {
63
            @ApiResponse(code = 200, message = "OK", response = Country.class),
64
            @ApiResponse(code = 500, message = "unexpected error", response = Response.class) })
65
    List<Country> listCountries() throws ApiException;
66

    
67
    @ApiOperation(value = "get the list of API for a given datasource", notes = "Returns the list of API for a given datasource.", httpMethod = "GET", response = Api[].class)
68
    @ApiResponses(value = {
69
            @ApiResponse(code = 200, message = "OK", response = Api[].class),
70
            @ApiResponse(code = 500, message = "unexpected error", response = Response.class) })
71
    List<Api> getApi(String dsId) throws ApiException;
72

    
73
    @ApiOperation(value = "delete an API", notes = "delete an API", httpMethod = "DELETE")
74
    @ApiResponses(value = {
75
            @ApiResponse(code = 200, message = "OK"),
76
            @ApiResponse(code = 500, message = "unexpected error") })
77
    void deleteApi(String apiId) throws ApiException;
78

    
79
    @ApiOperation(value = "adds a new API to one Datasource", notes = "adds an API to one Datasource", httpMethod = "POST")
80
    @ApiResponses(value = {
81
            @ApiResponse(code = 200, message = "OK"),
82
            @ApiResponse(code = 500, message = "unexpected error") })
83
    void addApi(Api api) throws ApiException;
84

    
85
    @ApiOperation(value = "set the managed status for a given datasource", notes = "set the managed status for a given datasource", httpMethod = "POST")
86
    @ApiResponses(value = {
87
            @ApiResponse(code = 200, message = "OK"),
88
            @ApiResponse(code = 500, message = "unexpected error") })
89
    void setManaged(String id, boolean managed);
90

    
91
    @ApiOperation(value = "adds a new Datasource", notes = "adds a new Datasource", httpMethod = "POST")
92
    @ApiResponses(value = {
93
            @ApiResponse(code = 200, message = "OK"),
94
            @ApiResponse(code = 500, message = "unexpected error") })
95
    void saveDatasource(Datasource datasource) throws ApiException;
96

    
97
    @ApiOperation(value = "updates a datasource official name", notes = "updates a datasource official name", httpMethod = "POST")
98
    @ApiResponses(value = {
99
            @ApiResponse(code = 200, message = "OK"),
100
            @ApiResponse(code = 500, message = "unexpected error") })
101
    void updateOfficialname(String dsId, String officialname) throws ApiException;
102

    
103
    @ApiOperation(value = "updates a datasource english name", notes = "updates a datasource english name", httpMethod = "POST")
104
    @ApiResponses(value = {
105
            @ApiResponse(code = 200, message = "OK"),
106
            @ApiResponse(code = 500, message = "unexpected error") })
107
    void updateEnglishname(String dsId, String english) throws ApiException;
108

    
109
    @ApiOperation(value = "updates a datasource latitude", notes = "updates a datasource latitude", httpMethod = "POST")
110
    @ApiResponses(value = {
111
            @ApiResponse(code = 200, message = "OK"),
112
            @ApiResponse(code = 500, message = "unexpected error") })
113
    void updateLatitude(String dsId, Double latitude) throws ApiException;
114

    
115
    @ApiOperation(value = "updates a datasource longitude", notes = "updates a datasource longitude", httpMethod = "POST")
116
    @ApiResponses(value = {
117
            @ApiResponse(code = 200, message = "OK"),
118
            @ApiResponse(code = 500, message = "unexpected error") })
119
    void updateLongitude(String dsId, Double longitude) throws ApiException;
120

    
121
}
(2-2/4)