partial migration to new openAPI
This commit is contained in:
parent
9b9d37624c
commit
c3d2187257
|
@ -9,7 +9,6 @@ import org.springframework.cache.annotation.EnableCaching;
|
|||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.scheduling.annotation.EnableScheduling;
|
||||
|
||||
import eu.dnetlib.DnetOpenaireExporterProperties.Swagger;
|
||||
import eu.dnetlib.common.app.AbstractDnetApp;
|
||||
import eu.dnetlib.openaire.community.CommunityApiController;
|
||||
import eu.dnetlib.openaire.context.ContextApiController;
|
||||
|
@ -77,7 +76,7 @@ public class DNetOpenaireExporterApplication extends AbstractDnetApp {
|
|||
return newGroupedOpenApi("OpenAIRE Info", InfoController.class.getPackage().getName());
|
||||
}
|
||||
|
||||
private GroupedOpenApi newGroupedOpenApi(final String groupName, final String controllerPackage, final Swagger swag, final String version) {
|
||||
private GroupedOpenApi newGroupedOpenApi(final String groupName, final String controllerPackage) {
|
||||
return GroupedOpenApi.builder()
|
||||
.group(groupName)
|
||||
.packagesToScan(controllerPackage)
|
||||
|
|
|
@ -15,7 +15,6 @@ import org.springframework.web.bind.annotation.RestController;
|
|||
import eu.dnetlib.openaire.common.AbstractExporterController;
|
||||
import eu.dnetlib.openaire.funders.domain.ExtendedFunderDetails;
|
||||
import eu.dnetlib.openaire.funders.domain.FunderDetails;
|
||||
import eu.dnetlib.openaire.funders.domain.db.FunderDbEntry;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.responses.ApiResponse;
|
||||
import io.swagger.v3.oas.annotations.responses.ApiResponses;
|
||||
|
@ -37,10 +36,10 @@ public class FundersApiController extends AbstractExporterController {
|
|||
@RequestMapping(value = "/funders", produces = {
|
||||
"application/json"
|
||||
}, method = RequestMethod.GET)
|
||||
@Operation(value = "get basic information about funders", notes = "basic information about funders: id, name, shortname, last update date, registration date", response = FunderDetails[].class)
|
||||
@Operation(summary = "get basic information about funders", description = "basic information about funders: id, name, shortname, last update date, registration date")
|
||||
@ApiResponses(value = {
|
||||
@ApiResponse(responseCode = "200", description = "OK", response = FunderDetails[].class),
|
||||
@ApiResponse(responseCode = "500", description = "unexpected error", response = ErrorMessage.class)
|
||||
@ApiResponse(responseCode = "200", description = "OK"),
|
||||
@ApiResponse(responseCode = "500", description = "unexpected error")
|
||||
})
|
||||
public List<FunderDetails> getFunders(
|
||||
@PathVariable final int page,
|
||||
|
@ -52,10 +51,10 @@ public class FundersApiController extends AbstractExporterController {
|
|||
@RequestMapping(value = "/funder/{id}", produces = {
|
||||
"application/json"
|
||||
}, method = RequestMethod.GET)
|
||||
@Operation(summary = "get the funder details", notes = "complete funder information", response = FunderDbEntry.class)
|
||||
@Operation(summary = "get the funder details", description = "complete funder information")
|
||||
@ApiResponses(value = {
|
||||
@ApiResponse(responseCode = "200", description = "OK", response = FunderDbEntry.class),
|
||||
@ApiResponse(responseCode = "500", description = "unexpected error", response = ErrorMessage.class)
|
||||
@ApiResponse(responseCode = "200", description = "OK"),
|
||||
@ApiResponse(responseCode = "500", description = "unexpected error")
|
||||
})
|
||||
public ExtendedFunderDetails getFunderDetails(
|
||||
@PathVariable final String id) throws FundersApiException {
|
||||
|
@ -66,10 +65,10 @@ public class FundersApiController extends AbstractExporterController {
|
|||
@RequestMapping(value = "/funder/ids", produces = {
|
||||
"application/json"
|
||||
}, method = RequestMethod.GET)
|
||||
@Operation(summary = "get the list of funder ids", notes = "get the list of funder ids", response = String[].class)
|
||||
@Operation(summary = "get the list of funder ids", description = "get the list of funder ids")
|
||||
@ApiResponses(value = {
|
||||
@ApiResponse(responseCode = "200", description = "OK", response = String[].class),
|
||||
@ApiResponse(responseCode = "500", description = "unexpected error", response = ErrorMessage.class)
|
||||
@ApiResponse(responseCode = "200", description = "OK"),
|
||||
@ApiResponse(responseCode = "500", description = "unexpected error")
|
||||
})
|
||||
public List<String> getFunderIds(
|
||||
@PathVariable final int page,
|
||||
|
|
|
@ -35,8 +35,6 @@ import eu.dnetlib.openaire.common.AbstractExporterController;
|
|||
import eu.dnetlib.openaire.common.ExporterConstants;
|
||||
import eu.dnetlib.openaire.project.dao.JdbcApiDao;
|
||||
import eu.dnetlib.openaire.project.dao.ValueCleaner;
|
||||
import eu.dnetlib.openaire.project.domain.db.ProjectDetails;
|
||||
import eu.dnetlib.openaire.project.domain.db.ProjectTsv;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.responses.ApiResponse;
|
||||
import io.swagger.v3.oas.annotations.responses.ApiResponses;
|
||||
|
@ -64,12 +62,12 @@ public class ProjectsController extends AbstractExporterController {
|
|||
private ProjectQueryParamsFactory projectQueryParamsFactory;
|
||||
|
||||
@RequestMapping(value = "/export/**/project/dspace.do", method = RequestMethod.GET)
|
||||
@Operation(value = "DSpace", notes = "return project information in compatible with the OpenAIRE plugin for DSpace", tags = {
|
||||
@Operation(summary = "DSpace", description = "return project information in compatible with the OpenAIRE plugin for DSpace", tags = {
|
||||
ExporterConstants.DSPACE
|
||||
}, response = String.class)
|
||||
})
|
||||
@ApiResponses(value = {
|
||||
@ApiResponse(responseCode = "200", description = "OK", response = String.class),
|
||||
@ApiResponse(responseCode = "500", description = "unexpected error", response = ErrorMessage.class)
|
||||
@ApiResponse(responseCode = "200", description = "OK"),
|
||||
@ApiResponse(responseCode = "500", description = "unexpected error")
|
||||
})
|
||||
public void processDspace(final HttpServletRequest request,
|
||||
final ServletResponse response,
|
||||
|
@ -92,12 +90,12 @@ public class ProjectsController extends AbstractExporterController {
|
|||
}
|
||||
|
||||
@RequestMapping(value = "/export/**/project/eprints.do", method = RequestMethod.GET)
|
||||
@Operation(value = "EPrints", notes = "return project information in compatible with the OpenAIRE plugin for Eprints", tags = {
|
||||
@Operation(summary = "EPrints", description = "return project information in compatible with the OpenAIRE plugin for Eprints", tags = {
|
||||
ExporterConstants.EPRINT
|
||||
}, response = String.class)
|
||||
})
|
||||
@ApiResponses(value = {
|
||||
@ApiResponse(responseCode = "200", description = "OK", response = String.class),
|
||||
@ApiResponse(responseCode = "500", description = "unexpected error", response = ErrorMessage.class)
|
||||
@ApiResponse(responseCode = "200", description = "OK"),
|
||||
@ApiResponse(responseCode = "500", description = "unexpected error")
|
||||
})
|
||||
public void processEprints(final HttpServletRequest request,
|
||||
final ServletResponse response,
|
||||
|
@ -130,12 +128,12 @@ public class ProjectsController extends AbstractExporterController {
|
|||
}
|
||||
|
||||
@RequestMapping(value = "/noads/project2tsv.do", method = RequestMethod.GET)
|
||||
@Operation(value = "TSV", notes = "download project information in TSV format", tags = {
|
||||
@Operation(summary = "TSV", description = "download project information in TSV format", tags = {
|
||||
ExporterConstants.TSV
|
||||
}, response = ProjectTsv[].class)
|
||||
})
|
||||
@ApiResponses(value = {
|
||||
@ApiResponse(responseCode = "200", description = "OK", response = ProjectTsv[].class),
|
||||
@ApiResponse(responseCode = "500", description = "unexpected error", response = ErrorMessage.class)
|
||||
@ApiResponse(responseCode = "200", description = "OK"),
|
||||
@ApiResponse(responseCode = "500", description = "unexpected error")
|
||||
})
|
||||
public void processTsv(final HttpServletResponse response,
|
||||
@RequestParam(value = "funding", required = true) final String funding,
|
||||
|
@ -155,12 +153,12 @@ public class ProjectsController extends AbstractExporterController {
|
|||
}
|
||||
|
||||
@RequestMapping(value = "/export/streamProjectDetails.do", method = RequestMethod.GET)
|
||||
@Operation(value = "Stream projects", notes = "stream project information", tags = {
|
||||
@Operation(summary = "Stream projects", description = "stream project information", tags = {
|
||||
ExporterConstants.STREAMING
|
||||
}, response = ProjectDetails[].class)
|
||||
})
|
||||
@ApiResponses(value = {
|
||||
@ApiResponse(responseCode = "200", description = "OK", response = ProjectDetails[].class),
|
||||
@ApiResponse(responseCode = "500", description = "unexpected error", response = ErrorMessage.class)
|
||||
@ApiResponse(responseCode = "200", description = "OK"),
|
||||
@ApiResponse(responseCode = "500", description = "unexpected error")
|
||||
})
|
||||
public void streamProjectDetails(final HttpServletResponse response,
|
||||
@RequestParam(value = "format", required = true) final String format,
|
||||
|
|
|
@ -21,6 +21,7 @@ import org.supercsv.io.CsvBeanWriter;
|
|||
import org.supercsv.io.ICsvBeanReader;
|
||||
import org.supercsv.io.ICsvBeanWriter;
|
||||
import org.supercsv.prefs.CsvPreference;
|
||||
import org.supercsv.util.CsvContext;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||
import com.google.gson.Gson;
|
||||
|
@ -89,7 +90,16 @@ public class ProjectDetails {
|
|||
|
||||
public static ProjectDetails fromCSV(final String csv) throws IOException {
|
||||
try (ICsvBeanReader beanReader = new CsvBeanReader(new StringReader(csv), CsvPreference.STANDARD_PREFERENCE)) {
|
||||
return beanReader.read(ProjectDetails.class, FIELDS, getProcessors((value, context) -> new Gson().fromJson(value.toString(), List.class)));
|
||||
final CellProcessor cp = new CellProcessor() {
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
@Override
|
||||
public <T> T execute(final Object value, final CsvContext context) {
|
||||
return (T) new Gson().fromJson(value.toString(), List.class);
|
||||
}
|
||||
};
|
||||
|
||||
return beanReader.read(ProjectDetails.class, FIELDS, getProcessors(cp));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -116,7 +126,15 @@ public class ProjectDetails {
|
|||
public String asCSV() throws IOException {
|
||||
final StringWriter sb = new StringWriter();
|
||||
try (ICsvBeanWriter beanWriter = new CsvBeanWriter(sb, CsvPreference.STANDARD_PREFERENCE)) {
|
||||
beanWriter.write(this, FIELDS, getProcessors((value, context) -> new Gson().toJson(value)));
|
||||
final CellProcessor cp = new CellProcessor() {
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
@Override
|
||||
public <T> T execute(final Object value, final CsvContext context) {
|
||||
return (T) new Gson().toJson(value);
|
||||
}
|
||||
};
|
||||
beanWriter.write(this, FIELDS, getProcessors(cp));
|
||||
beanWriter.flush();
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue