From 8d3cb1e9fd25e4270bd3386815d8088bd410832c Mon Sep 17 00:00:00 2001 From: cka-y Date: Thu, 23 Jan 2025 11:27:54 -0500 Subject: [PATCH] feat: added agencyTimezone to JSON report summary --- .../report/JsonReportSummary.java | 3 +++ .../report/model/FeedMetadata.java | 18 ++++++++++++++++++ 2 files changed, 21 insertions(+) diff --git a/main/src/main/java/org/mobilitydata/gtfsvalidator/report/JsonReportSummary.java b/main/src/main/java/org/mobilitydata/gtfsvalidator/report/JsonReportSummary.java index 1f75f1d57b..93ebda2b84 100644 --- a/main/src/main/java/org/mobilitydata/gtfsvalidator/report/JsonReportSummary.java +++ b/main/src/main/java/org/mobilitydata/gtfsvalidator/report/JsonReportSummary.java @@ -37,6 +37,7 @@ public class JsonReportSummary { private Set files; private Double validationTimeSeconds; public List memoryUsageRecords; + public String agencyTimezone; @SerializedName("counts") private JsonReportCounts jsonReportCounts; @@ -71,6 +72,7 @@ public JsonReportSummary( this.feedInfo = new JsonReportFeedInfo(feedMetadata.feedInfo); this.validationTimeSeconds = feedMetadata.validationTimeSeconds; this.memoryUsageRecords = feedMetadata.memoryUsageRecords; + this.agencyTimezone = feedMetadata.agencyTimezone; } else { logger.atSevere().log( "No feed info for feed " @@ -119,6 +121,7 @@ private static class JsonReportFeedInfo { public JsonReportFeedInfo(Map feedInfo) { publisherName = feedInfo.get(FeedMetadata.FEED_INFO_PUBLISHER_NAME); publisherUrl = feedInfo.get(FeedMetadata.FEED_INFO_PUBLISHER_URL); + // here feedEmail = feedInfo.get(FeedMetadata.FEED_INFO_FEED_CONTACT_EMAIL); feedLanguage = feedInfo.get(FeedMetadata.FEED_INFO_FEED_LANGUAGE); feedStartDate = feedInfo.get(FeedMetadata.FEED_INFO_FEED_START_DATE); diff --git a/main/src/main/java/org/mobilitydata/gtfsvalidator/report/model/FeedMetadata.java b/main/src/main/java/org/mobilitydata/gtfsvalidator/report/model/FeedMetadata.java index 4b04270743..77c7d21fb4 100644 --- a/main/src/main/java/org/mobilitydata/gtfsvalidator/report/model/FeedMetadata.java +++ b/main/src/main/java/org/mobilitydata/gtfsvalidator/report/model/FeedMetadata.java @@ -57,6 +57,9 @@ public class FeedMetadata { public double validationTimeSeconds; public List memoryUsageRecords; + + public String agencyTimezone; + // List of features that only require checking the presence of one record in the file. private final List> FILE_BASED_FEATURES = List.of( @@ -105,6 +108,7 @@ public static FeedMetadata from(GtfsFeedContainer feedContainer, ImmutableSet> agencyTableOptional = feedContainer.getTableForFilename(GtfsAgency.FILENAME); feedMetadata.loadAgencyData(agencyTableOptional.get()); + feedMetadata.loadAgencyTimezone(agencyTableOptional.get()); } if (feedContainer.getTableForFilename(GtfsTrip.FILENAME).isPresent() @@ -124,6 +128,20 @@ public static FeedMetadata from(GtfsFeedContainer feedContainer, ImmutableSet + gtfsAgencyGtfsAgencyTableDescriptorGtfsTableContainer) { + if (gtfsAgencyGtfsAgencyTableDescriptorGtfsTableContainer.getEntities().isEmpty()) { + return; + } + agencyTimezone = + gtfsAgencyGtfsAgencyTableDescriptorGtfsTableContainer + .getEntities() + .get(0) + .agencyTimezone() + .getId(); + } + private void setCounts(GtfsFeedContainer feedContainer) { setCount(COUNTS_SHAPES, feedContainer, GtfsShape.FILENAME, GtfsShape.class, GtfsShape::shapeId); setCount(COUNTS_STOPS, feedContainer, GtfsStop.FILENAME, GtfsStop.class, GtfsStop::stopId);