diff options
Diffstat (limited to 'src/Enmarcha.Backend/Services')
10 files changed, 88 insertions, 38 deletions
diff --git a/src/Enmarcha.Backend/Services/Processors/NextStopsProcessor.cs b/src/Enmarcha.Backend/Services/Processors/NextStopsProcessor.cs index 1db215b..4c0b8ac 100644 --- a/src/Enmarcha.Backend/Services/Processors/NextStopsProcessor.cs +++ b/src/Enmarcha.Backend/Services/Processors/NextStopsProcessor.cs @@ -1,4 +1,3 @@ -using System.Text; using Enmarcha.Sources.OpenTripPlannerGql.Queries; namespace Enmarcha.Backend.Services.Processors; diff --git a/src/Enmarcha.Backend/Services/Processors/Normalisation/ColourProcessor.cs b/src/Enmarcha.Backend/Services/Processors/Normalisation/ColourProcessor.cs new file mode 100644 index 0000000..ee4379b --- /dev/null +++ b/src/Enmarcha.Backend/Services/Processors/Normalisation/ColourProcessor.cs @@ -0,0 +1,34 @@ +using Enmarcha.Backend.Helpers; + +namespace Enmarcha.Backend.Services.Processors.Normalisation; + +public class ColourProcessor : IArrivalsProcessor +{ + private readonly FeedService _feedService; + + public ColourProcessor(FeedService feedService) + { + _feedService = feedService; + } + + public Task ProcessAsync(ArrivalsContext context) + { + var feedId = context.StopId.Split(':')[0]; + var (fallbackColor, fallbackTextColor) = _feedService.GetFallbackColourForFeed(feedId); + + foreach (var arrival in context.Arrivals) + { + if (string.IsNullOrEmpty(arrival.Route.Colour) || arrival.Route.Colour == "FFFFFF") + { + arrival.Route.Colour = fallbackColor; + arrival.Route.TextColour = fallbackTextColor; + } + else if (string.IsNullOrEmpty(arrival.Route.TextColour) || arrival.Route.TextColour == "000000") + { + arrival.Route.TextColour = ContrastHelper.GetBestTextColour(arrival.Route.Colour); + } + } + + return Task.CompletedTask; + } +} diff --git a/src/Enmarcha.Backend/Services/Processors/Normalisation/TranviasNormalizationProcessor.cs b/src/Enmarcha.Backend/Services/Processors/Normalisation/TranviasNormalizationProcessor.cs new file mode 100644 index 0000000..3d17a37 --- /dev/null +++ b/src/Enmarcha.Backend/Services/Processors/Normalisation/TranviasNormalizationProcessor.cs @@ -0,0 +1,17 @@ +namespace Enmarcha.Backend.Services.Processors.Normalisation; + +public class TranviasNormalizationProcessor : IArrivalsProcessor +{ + public Task ProcessAsync(ArrivalsContext context) + { + if (context.StopId.Split(':')[0] != "tranvias") + return Task.CompletedTask; + + foreach (var arrival in context.Arrivals) + { + arrival.Shift = FeedService.GetShiftBadge("tranvias", arrival.TripId); + } + + return Task.CompletedTask; + } +} diff --git a/src/Enmarcha.Backend/Services/Processors/FeedConfigProcessor.cs b/src/Enmarcha.Backend/Services/Processors/Normalisation/VitrasaNormalizationProcessor.cs index 9fc46c7..2cca672 100644 --- a/src/Enmarcha.Backend/Services/Processors/FeedConfigProcessor.cs +++ b/src/Enmarcha.Backend/Services/Processors/Normalisation/VitrasaNormalizationProcessor.cs @@ -1,44 +1,19 @@ -using Enmarcha.Backend.Helpers; using Enmarcha.Backend.Types.Arrivals; -namespace Enmarcha.Backend.Services.Processors; +namespace Enmarcha.Backend.Services.Processors.Normalisation; -public class FeedConfigProcessor : IArrivalsProcessor +public class VitrasaNormalizationProcessor : IArrivalsProcessor { - private readonly FeedService _feedService; - - public FeedConfigProcessor(FeedService feedService) - { - _feedService = feedService; - } - public Task ProcessAsync(ArrivalsContext context) { - var feedId = context.StopId.Split(':')[0]; - var (fallbackColor, fallbackTextColor) = _feedService.GetFallbackColourForFeed(feedId); + if (context.StopId.Split(':')[0] != "vitrasa") + return Task.CompletedTask; foreach (var arrival in context.Arrivals) { - arrival.Route.ShortName = _feedService.NormalizeRouteShortName(feedId, arrival.Route.ShortName); - arrival.Headsign.Destination = FeedService.NormalizeStopName(feedId, arrival.Headsign.Destination); - - // Apply Vitrasa-specific line formatting - if (feedId == "vitrasa") - { - FormatVitrasaLine(arrival); - } - - arrival.Shift = FeedService.GetShiftBadge(feedId, arrival.TripId); - - if (string.IsNullOrEmpty(arrival.Route.Colour) || arrival.Route.Colour == "FFFFFF") - { - arrival.Route.Colour = fallbackColor; - arrival.Route.TextColour = fallbackTextColor; - } - else if (string.IsNullOrEmpty(arrival.Route.TextColour) || arrival.Route.TextColour == "000000") - { - arrival.Route.TextColour = ContrastHelper.GetBestTextColour(arrival.Route.Colour); - } + arrival.Headsign.Destination = FeedService.NormalizeStopName("vitrasa", arrival.Headsign.Destination); + FormatVitrasaLine(arrival); + arrival.Shift = FeedService.GetShiftBadge("vitrasa", arrival.TripId); } return Task.CompletedTask; @@ -93,6 +68,7 @@ public class FeedConfigProcessor : IArrivalsProcessor arrival.Route.ShortName = "GOL"; arrival.Headsign.Destination = "GOL ⚽: NAVIA-BOUZAS-URZAIZ-G. ESPINO"; } + arrival.Route.Colour = "6CACE4"; arrival.Route.TextColour = "000000"; break; diff --git a/src/Enmarcha.Backend/Services/Processors/Normalisation/XuntaNormalizationProcessor.cs b/src/Enmarcha.Backend/Services/Processors/Normalisation/XuntaNormalizationProcessor.cs new file mode 100644 index 0000000..9b7e498 --- /dev/null +++ b/src/Enmarcha.Backend/Services/Processors/Normalisation/XuntaNormalizationProcessor.cs @@ -0,0 +1,24 @@ +namespace Enmarcha.Backend.Services.Processors.Normalisation; + +public class XuntaNormalizationProcessor : IArrivalsProcessor +{ + private readonly FeedService _feedService; + + public XuntaNormalizationProcessor(FeedService feedService) + { + _feedService = feedService; + } + + public Task ProcessAsync(ArrivalsContext context) + { + if (context.StopId.Split(':')[0] != "xunta") + return Task.CompletedTask; + + foreach (var arrival in context.Arrivals) + { + arrival.Route.ShortName = _feedService.NormalizeRouteShortName("xunta", arrival.Route.ShortName); + } + + return Task.CompletedTask; + } +} diff --git a/src/Enmarcha.Backend/Services/Processors/CorunaRealTimeProcessor.cs b/src/Enmarcha.Backend/Services/Processors/RealTime/CorunaRealTimeProcessor.cs index 797221f..20dc356 100644 --- a/src/Enmarcha.Backend/Services/Processors/CorunaRealTimeProcessor.cs +++ b/src/Enmarcha.Backend/Services/Processors/RealTime/CorunaRealTimeProcessor.cs @@ -3,7 +3,7 @@ using Enmarcha.Sources.TranviasCoruna; using Enmarcha.Backend.Types; using Enmarcha.Backend.Types.Arrivals; -namespace Enmarcha.Backend.Services.Processors; +namespace Enmarcha.Backend.Services.Processors.RealTime; public class CorunaRealTimeProcessor : AbstractRealTimeProcessor { diff --git a/src/Enmarcha.Backend/Services/Processors/CtagShuttleRealTimeProcessor.cs b/src/Enmarcha.Backend/Services/Processors/RealTime/CtagShuttleRealTimeProcessor.cs index ce2651f..804b09c 100644 --- a/src/Enmarcha.Backend/Services/Processors/CtagShuttleRealTimeProcessor.cs +++ b/src/Enmarcha.Backend/Services/Processors/RealTime/CtagShuttleRealTimeProcessor.cs @@ -3,7 +3,7 @@ using Enmarcha.Sources.OpenTripPlannerGql.Queries; using Enmarcha.Backend.Types; using Enmarcha.Backend.Types.Arrivals; -namespace Enmarcha.Backend.Services.Processors; +namespace Enmarcha.Backend.Services.Processors.RealTime; public class CtagShuttleRealTimeProcessor : AbstractRealTimeProcessor { diff --git a/src/Enmarcha.Backend/Services/Processors/RenfeRealTimeProcessor.cs b/src/Enmarcha.Backend/Services/Processors/RealTime/RenfeRealTimeProcessor.cs index 5e5468e..26ffa24 100644 --- a/src/Enmarcha.Backend/Services/Processors/RenfeRealTimeProcessor.cs +++ b/src/Enmarcha.Backend/Services/Processors/RealTime/RenfeRealTimeProcessor.cs @@ -4,7 +4,7 @@ using Enmarcha.Backend.Types.Arrivals; using Enmarcha.Sources.GtfsRealtime; using Arrival = Enmarcha.Backend.Types.Arrivals.Arrival; -namespace Enmarcha.Backend.Services.Processors; +namespace Enmarcha.Backend.Services.Processors.RealTime; public partial class RenfeRealTimeProcessor : AbstractRealTimeProcessor { diff --git a/src/Enmarcha.Backend/Services/Processors/TussaRealTimeProcessor.cs b/src/Enmarcha.Backend/Services/Processors/RealTime/TussaRealTimeProcessor.cs index 7808a3f..2cfdf28 100644 --- a/src/Enmarcha.Backend/Services/Processors/TussaRealTimeProcessor.cs +++ b/src/Enmarcha.Backend/Services/Processors/RealTime/TussaRealTimeProcessor.cs @@ -3,7 +3,7 @@ using Enmarcha.Backend.Types.Arrivals; using Enmarcha.Sources.Tussa; using Arrival = Enmarcha.Backend.Types.Arrivals.Arrival; -namespace Enmarcha.Backend.Services.Processors; +namespace Enmarcha.Backend.Services.Processors.RealTime; public class TussaRealTimeProcessor : AbstractRealTimeProcessor { diff --git a/src/Enmarcha.Backend/Services/Processors/VitrasaRealTimeProcessor.cs b/src/Enmarcha.Backend/Services/Processors/RealTime/VitrasaRealTimeProcessor.cs index 5bbbfab..0227f9c 100644 --- a/src/Enmarcha.Backend/Services/Processors/VitrasaRealTimeProcessor.cs +++ b/src/Enmarcha.Backend/Services/Processors/RealTime/VitrasaRealTimeProcessor.cs @@ -5,7 +5,7 @@ using Enmarcha.Backend.Types; using Enmarcha.Backend.Types.Arrivals; using Microsoft.Extensions.Options; -namespace Enmarcha.Backend.Services.Processors; +namespace Enmarcha.Backend.Services.Processors.RealTime; public class VitrasaRealTimeProcessor : AbstractRealTimeProcessor { |
