date mamagement

This commit is contained in:
Michele Artini 2023-07-03 14:19:41 +02:00
parent 0596a9666c
commit 31bc085093
2 changed files with 33 additions and 15 deletions

View File

@ -1,11 +1,8 @@
package eu.dnetlib.openaire.community.importer;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Base64;
import java.util.Date;
import java.util.List;
import java.util.Map;
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.model.DbOrganization;
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.model.community.CommunityClaimType;
import eu.dnetlib.openaire.exporter.model.community.CommunityContentprovider;
@ -49,8 +47,6 @@ import eu.dnetlib.openaire.exporter.model.context.Param;
@Service
public class CommunityImporterService {
private final static String pattern = "yyyy-MM-dd'T'hh:mm:ss";
// common
private final static String OPENAIRE_ID = "openaireId";
private final static String PIPE_SEPARATOR = "||";
@ -243,8 +239,8 @@ public class CommunityImporterService {
details.setId(c.getId());
details.setShortName(c.getLabel());
details.setLastUpdateDate(convertToLocalDateTime(c.getLastUpdateDate()));
details.setCreationDate(convertToLocalDateTime(c.getCreationDate()));
details.setLastUpdateDate(CommunityMappingUtils.asLocalDateTime(c.getLastUpdateDate()));
details.setCreationDate(CommunityMappingUtils.asLocalDateTime(c.getCreationDate()));
details.setQueryId(c.getId() + PIPE_SEPARATOR + c.getLabel());
details.setType(CommunityType.valueOf(c.getType()));
details.setMembership(CommunityMembershipType.open);
@ -287,8 +283,7 @@ public class CommunityImporterService {
}
if (params.containsKey(CPROFILE_CREATIONDATE)) {
try {
final Date d = org.apache.commons.lang3.time.DateUtils.parseDate(asCsv(params.get(CPROFILE_CREATIONDATE)), pattern);
details.setCreationDate(convertToLocalDateTime(d));
details.setCreationDate(CommunityMappingUtils.asLocalDateTime(asCsv(params.get(CPROFILE_CREATIONDATE))));
} catch (final Exception e) {
log.debug("Exception on date format: " + e.getMessage());
}
@ -388,12 +383,6 @@ public class CommunityImporterService {
.distinct();
}
private static LocalDateTime convertToLocalDateTime(final Date date) {
return date.toInstant()
.atZone(ZoneId.systemDefault())
.toLocalDateTime();
}
protected DbOrganizationRepository getDbOrganizationRepository() {
return dbOrganizationRepository;
}

View File

@ -1,11 +1,19 @@
package eu.dnetlib.openaire.community.utils;
import java.text.ParseException;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import org.apache.commons.lang3.ObjectUtils;
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.DbDatasource;
@ -24,6 +32,10 @@ public class CommunityMappingUtils {
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) {
final CommunitySummary summary = new CommunitySummary();
populateSummary(summary, c);
@ -215,6 +227,23 @@ public class CommunityMappingUtils {
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) {
return list != null ? list.toArray(new String[list.size()]) : new String[0];
}