2019-11-22 16:31:50 +01:00
|
|
|
package org.gcube.data.publishing.ckan2zenodo.model.zenodo;
|
|
|
|
|
2020-01-23 18:03:28 +01:00
|
|
|
import java.net.MalformedURLException;
|
2019-11-22 16:31:50 +01:00
|
|
|
import java.net.URL;
|
|
|
|
import java.util.ArrayList;
|
|
|
|
import java.util.Date;
|
|
|
|
|
2019-11-27 18:21:01 +01:00
|
|
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
2019-11-22 16:31:50 +01:00
|
|
|
|
2019-11-27 18:21:01 +01:00
|
|
|
import lombok.Data;
|
2020-01-31 14:56:51 +01:00
|
|
|
import lombok.extern.slf4j.Slf4j;
|
2019-11-27 18:21:01 +01:00
|
|
|
|
|
|
|
@Data
|
2020-01-31 14:56:51 +01:00
|
|
|
@Slf4j
|
2019-11-22 16:31:50 +01:00
|
|
|
public class ZenodoDeposition {
|
|
|
|
|
2019-11-29 15:52:17 +01:00
|
|
|
@JsonFormat(pattern = Commons.ISO_DATE_PATTERN)
|
2019-11-22 16:31:50 +01:00
|
|
|
private Date created;
|
|
|
|
private String doi;
|
2020-02-03 18:14:26 +01:00
|
|
|
private String doi_url;
|
2020-01-23 18:03:28 +01:00
|
|
|
private DepositionLinks links;
|
2019-11-22 16:31:50 +01:00
|
|
|
private ArrayList<FileDeposition> files;
|
|
|
|
private Integer id;
|
|
|
|
private DepositionMetadata metadata;
|
2019-11-29 15:52:17 +01:00
|
|
|
@JsonFormat(pattern = Commons.ISO_DATE_PATTERN)
|
2019-11-22 16:31:50 +01:00
|
|
|
private Date modified;
|
|
|
|
private Integer owner;
|
|
|
|
private Integer record_id;
|
|
|
|
private URL record_url;
|
|
|
|
private String state;
|
|
|
|
private Boolean submitted;
|
|
|
|
private String title;
|
|
|
|
|
2020-01-23 18:03:28 +01:00
|
|
|
public URL getDOIUrl() throws MalformedURLException {
|
2020-01-31 14:56:51 +01:00
|
|
|
try {
|
2020-02-03 18:14:26 +01:00
|
|
|
return new URL(doi_url);
|
2020-01-23 18:03:28 +01:00
|
|
|
}catch(Throwable t) {
|
2020-01-31 14:56:51 +01:00
|
|
|
log.warn("Returned concept link is broken, forming it from doi..");
|
2020-01-23 18:03:28 +01:00
|
|
|
return new URL("https://doi.org/"+doi);
|
|
|
|
}
|
|
|
|
}
|
2019-11-22 16:31:50 +01:00
|
|
|
}
|