new_model_for_communities #15

Merged
michele.artini merged 81 commits from new_model_for_communities into master 2023-10-24 08:12:26 +02:00
2 changed files with 33 additions and 15 deletions
Showing only changes of commit 31bc085093 - Show all commits

View File

@ -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;
} }

View File

@ -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];
} }