new_model_for_communities #15
|
@ -1,11 +1,8 @@
|
||||||
package eu.dnetlib.openaire.community.importer;
|
package eu.dnetlib.openaire.community.importer;
|
||||||
|
|
||||||
import java.time.LocalDateTime;
|
|
||||||
import java.time.ZoneId;
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.Base64;
|
import java.util.Base64;
|
||||||
import java.util.Date;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.function.Function;
|
import java.util.function.Function;
|
||||||
|
@ -30,6 +27,7 @@ import eu.dnetlib.miscutils.functional.hash.Hashing;
|
||||||
import eu.dnetlib.openaire.community.CommunityService;
|
import eu.dnetlib.openaire.community.CommunityService;
|
||||||
import eu.dnetlib.openaire.community.model.DbOrganization;
|
import eu.dnetlib.openaire.community.model.DbOrganization;
|
||||||
import eu.dnetlib.openaire.community.repository.DbOrganizationRepository;
|
import eu.dnetlib.openaire.community.repository.DbOrganizationRepository;
|
||||||
|
import eu.dnetlib.openaire.community.utils.CommunityMappingUtils;
|
||||||
import eu.dnetlib.openaire.exporter.exceptions.CommunityException;
|
import eu.dnetlib.openaire.exporter.exceptions.CommunityException;
|
||||||
import eu.dnetlib.openaire.exporter.model.community.CommunityClaimType;
|
import eu.dnetlib.openaire.exporter.model.community.CommunityClaimType;
|
||||||
import eu.dnetlib.openaire.exporter.model.community.CommunityContentprovider;
|
import eu.dnetlib.openaire.exporter.model.community.CommunityContentprovider;
|
||||||
|
@ -49,8 +47,6 @@ import eu.dnetlib.openaire.exporter.model.context.Param;
|
||||||
@Service
|
@Service
|
||||||
public class CommunityImporterService {
|
public class CommunityImporterService {
|
||||||
|
|
||||||
private final static String pattern = "yyyy-MM-dd'T'hh:mm:ss";
|
|
||||||
|
|
||||||
// common
|
// common
|
||||||
private final static String OPENAIRE_ID = "openaireId";
|
private final static String OPENAIRE_ID = "openaireId";
|
||||||
private final static String PIPE_SEPARATOR = "||";
|
private final static String PIPE_SEPARATOR = "||";
|
||||||
|
@ -243,8 +239,8 @@ public class CommunityImporterService {
|
||||||
|
|
||||||
details.setId(c.getId());
|
details.setId(c.getId());
|
||||||
details.setShortName(c.getLabel());
|
details.setShortName(c.getLabel());
|
||||||
details.setLastUpdateDate(convertToLocalDateTime(c.getLastUpdateDate()));
|
details.setLastUpdateDate(CommunityMappingUtils.asLocalDateTime(c.getLastUpdateDate()));
|
||||||
details.setCreationDate(convertToLocalDateTime(c.getCreationDate()));
|
details.setCreationDate(CommunityMappingUtils.asLocalDateTime(c.getCreationDate()));
|
||||||
details.setQueryId(c.getId() + PIPE_SEPARATOR + c.getLabel());
|
details.setQueryId(c.getId() + PIPE_SEPARATOR + c.getLabel());
|
||||||
details.setType(CommunityType.valueOf(c.getType()));
|
details.setType(CommunityType.valueOf(c.getType()));
|
||||||
details.setMembership(CommunityMembershipType.open);
|
details.setMembership(CommunityMembershipType.open);
|
||||||
|
@ -287,8 +283,7 @@ public class CommunityImporterService {
|
||||||
}
|
}
|
||||||
if (params.containsKey(CPROFILE_CREATIONDATE)) {
|
if (params.containsKey(CPROFILE_CREATIONDATE)) {
|
||||||
try {
|
try {
|
||||||
final Date d = org.apache.commons.lang3.time.DateUtils.parseDate(asCsv(params.get(CPROFILE_CREATIONDATE)), pattern);
|
details.setCreationDate(CommunityMappingUtils.asLocalDateTime(asCsv(params.get(CPROFILE_CREATIONDATE))));
|
||||||
details.setCreationDate(convertToLocalDateTime(d));
|
|
||||||
} catch (final Exception e) {
|
} catch (final Exception e) {
|
||||||
log.debug("Exception on date format: " + e.getMessage());
|
log.debug("Exception on date format: " + e.getMessage());
|
||||||
}
|
}
|
||||||
|
@ -388,12 +383,6 @@ public class CommunityImporterService {
|
||||||
.distinct();
|
.distinct();
|
||||||
}
|
}
|
||||||
|
|
||||||
private static LocalDateTime convertToLocalDateTime(final Date date) {
|
|
||||||
return date.toInstant()
|
|
||||||
.atZone(ZoneId.systemDefault())
|
|
||||||
.toLocalDateTime();
|
|
||||||
}
|
|
||||||
|
|
||||||
protected DbOrganizationRepository getDbOrganizationRepository() {
|
protected DbOrganizationRepository getDbOrganizationRepository() {
|
||||||
return dbOrganizationRepository;
|
return dbOrganizationRepository;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,11 +1,19 @@
|
||||||
package eu.dnetlib.openaire.community.utils;
|
package eu.dnetlib.openaire.community.utils;
|
||||||
|
|
||||||
|
import java.text.ParseException;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
|
import java.time.ZoneId;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import org.apache.commons.lang3.ObjectUtils;
|
import org.apache.commons.lang3.ObjectUtils;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
import org.apache.commons.lang3.time.DateUtils;
|
||||||
|
import org.apache.commons.logging.Log;
|
||||||
|
import org.apache.commons.logging.LogFactory;
|
||||||
|
|
||||||
|
import com.google.common.collect.Lists;
|
||||||
|
|
||||||
import eu.dnetlib.openaire.community.model.DbCommunity;
|
import eu.dnetlib.openaire.community.model.DbCommunity;
|
||||||
import eu.dnetlib.openaire.community.model.DbDatasource;
|
import eu.dnetlib.openaire.community.model.DbDatasource;
|
||||||
|
@ -24,6 +32,10 @@ public class CommunityMappingUtils {
|
||||||
|
|
||||||
public final static String PIPE_SEPARATOR = "||";
|
public final static String PIPE_SEPARATOR = "||";
|
||||||
|
|
||||||
|
private static final List<String> DATE_PATTERN = Lists.newArrayList("yyyy-MM-dd'T'hh:mm:ss", "yyyy-MM-dd'T'hh:mm:ssXXX", "yyyy-MM-dd'T'hh:mm:ss+00:00");
|
||||||
|
|
||||||
|
private static final Log log = LogFactory.getLog(CommunityMappingUtils.class);
|
||||||
|
|
||||||
public static CommunitySummary toCommunitySummary(final DbCommunity c) {
|
public static CommunitySummary toCommunitySummary(final DbCommunity c) {
|
||||||
final CommunitySummary summary = new CommunitySummary();
|
final CommunitySummary summary = new CommunitySummary();
|
||||||
populateSummary(summary, c);
|
populateSummary(summary, c);
|
||||||
|
@ -215,6 +227,23 @@ public class CommunityMappingUtils {
|
||||||
return sc;
|
return sc;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static LocalDateTime asLocalDateTime(final String s) {
|
||||||
|
for (final String pattern : DATE_PATTERN) {
|
||||||
|
try {
|
||||||
|
final Date res = DateUtils.parseDate(s, pattern);
|
||||||
|
if (res != null) { return asLocalDateTime(res); }
|
||||||
|
} catch (final ParseException e) {}
|
||||||
|
}
|
||||||
|
log.error("Invalid Date: " + s);
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static LocalDateTime asLocalDateTime(final Date date) {
|
||||||
|
return date.toInstant()
|
||||||
|
.atZone(ZoneId.systemDefault())
|
||||||
|
.toLocalDateTime();
|
||||||
|
}
|
||||||
|
|
||||||
private static String[] toStringArray(final List<String> list) {
|
private static String[] toStringArray(final List<String> list) {
|
||||||
return list != null ? list.toArray(new String[list.size()]) : new String[0];
|
return list != null ? list.toArray(new String[list.size()]) : new String[0];
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue