aboutsummaryrefslogtreecommitdiff
path: root/src/Costasdev.Busurbano.Sources.OpenTripPlannerGql
diff options
context:
space:
mode:
Diffstat (limited to 'src/Costasdev.Busurbano.Sources.OpenTripPlannerGql')
-rw-r--r--src/Costasdev.Busurbano.Sources.OpenTripPlannerGql/Costasdev.Busurbano.Sources.OpenTripPlannerGql.csproj13
-rw-r--r--src/Costasdev.Busurbano.Sources.OpenTripPlannerGql/OpenTripPlannerClient.cs47
-rw-r--r--src/Costasdev.Busurbano.Sources.OpenTripPlannerGql/Queries/ArrivalsAtStop.cs217
-rw-r--r--src/Costasdev.Busurbano.Sources.OpenTripPlannerGql/Queries/PlanConnectionContent.cs245
-rw-r--r--src/Costasdev.Busurbano.Sources.OpenTripPlannerGql/Queries/RouteDetailsContent.cs112
-rw-r--r--src/Costasdev.Busurbano.Sources.OpenTripPlannerGql/Queries/RoutesListContent.cs66
-rw-r--r--src/Costasdev.Busurbano.Sources.OpenTripPlannerGql/Queries/StopTile.cs76
-rw-r--r--src/Costasdev.Busurbano.Sources.OpenTripPlannerGql/Queries/StopsInfo.cs57
-rw-r--r--src/Costasdev.Busurbano.Sources.OpenTripPlannerGql/ResponseTypes.cs36
9 files changed, 0 insertions, 869 deletions
diff --git a/src/Costasdev.Busurbano.Sources.OpenTripPlannerGql/Costasdev.Busurbano.Sources.OpenTripPlannerGql.csproj b/src/Costasdev.Busurbano.Sources.OpenTripPlannerGql/Costasdev.Busurbano.Sources.OpenTripPlannerGql.csproj
deleted file mode 100644
index 6d78b55..0000000
--- a/src/Costasdev.Busurbano.Sources.OpenTripPlannerGql/Costasdev.Busurbano.Sources.OpenTripPlannerGql.csproj
+++ /dev/null
@@ -1,13 +0,0 @@
-<Project Sdk="Microsoft.NET.Sdk">
-
- <PropertyGroup>
- <TargetFramework>net10.0</TargetFramework>
- <ImplicitUsings>enable</ImplicitUsings>
- <Nullable>enable</Nullable>
- </PropertyGroup>
-
- <ItemGroup>
- <PackageReference Include="Microsoft.Extensions.Logging" />
- </ItemGroup>
-
-</Project>
diff --git a/src/Costasdev.Busurbano.Sources.OpenTripPlannerGql/OpenTripPlannerClient.cs b/src/Costasdev.Busurbano.Sources.OpenTripPlannerGql/OpenTripPlannerClient.cs
deleted file mode 100644
index eed78d6..0000000
--- a/src/Costasdev.Busurbano.Sources.OpenTripPlannerGql/OpenTripPlannerClient.cs
+++ /dev/null
@@ -1,47 +0,0 @@
-using System.Net.Http.Json;
-using Costasdev.Busurbano.Sources.OpenTripPlannerGql.Queries;
-using Microsoft.Extensions.Logging;
-
-namespace Costasdev.Busurbano.Sources.OpenTripPlannerGql;
-
-public class OpenTripPlannerClient
-{
- private readonly HttpClient _httpClient;
- private readonly string _baseUrl;
- private readonly ILogger<OpenTripPlannerClient> _logger;
-
- public OpenTripPlannerClient(
- HttpClient httpClient,
- string baseUrl,
- ILogger<OpenTripPlannerClient> logger
- )
- {
- _httpClient = httpClient;
- _baseUrl = baseUrl;
- _logger = logger;
- }
-
- public async Task GetStopsInBbox(double minLat, double minLon, double maxLat, double maxLon)
- {
- var requestContent =
- StopTileRequestContent.Query(new StopTileRequestContent.Bbox(minLon, minLat, maxLon, maxLat));
-
- var request = new HttpRequestMessage(HttpMethod.Post, $"{_baseUrl}/gtfs/v1");
- request.Content = JsonContent.Create(new GraphClientRequest
- {
- Query = requestContent
- });
-
- var response = await _httpClient.SendAsync(request);
- var responseBody = await response.Content.ReadFromJsonAsync<GraphClientResponse<StopTileResponse>>();
-
- if (responseBody is not { IsSuccess: true })
- {
- _logger.LogError(
- "Error fetching stop data, received {StatusCode} {ResponseBody}",
- response.StatusCode,
- await response.Content.ReadAsStringAsync()
- );
- }
- }
-}
diff --git a/src/Costasdev.Busurbano.Sources.OpenTripPlannerGql/Queries/ArrivalsAtStop.cs b/src/Costasdev.Busurbano.Sources.OpenTripPlannerGql/Queries/ArrivalsAtStop.cs
deleted file mode 100644
index bce35a2..0000000
--- a/src/Costasdev.Busurbano.Sources.OpenTripPlannerGql/Queries/ArrivalsAtStop.cs
+++ /dev/null
@@ -1,217 +0,0 @@
-using System.Globalization;
-using System.Text.Json.Serialization;
-using Costasdev.Busurbano.Sources.OpenTripPlannerGql;
-
-namespace Costasdev.Busurbano.Sources.OpenTripPlannerGql.Queries;
-
-public class ArrivalsAtStopContent : IGraphRequest<ArrivalsAtStopContent.Args>
-{
- public record Args(string Id, bool Reduced);
-
- public static string Query(Args args)
- {
- var startTime = DateTimeOffset.UtcNow.AddMinutes(-75);
- var startTimeUnix = startTime.ToUnixTimeSeconds();
- var geometryField = args.Reduced ? "" : @"tripGeometry { points }";
-
- return string.Create(CultureInfo.InvariantCulture, $@"
- query Query {{
- stop(id:""{args.Id}"") {{
- code
- name
- lat
- lon
- routes {{
- gtfsId
- shortName
- color
- textColor
- }}
- arrivals: stoptimesWithoutPatterns(numberOfDepartures: 100, startTime: {startTimeUnix}, timeRange: 14400) {{
- headsign
- scheduledDeparture
- serviceDay
- pickupType
-
- trip {{
- gtfsId
- serviceId
- routeShortName
- route {{
- gtfsId
- color
- textColor
- longName
- }}
- departureStoptime {{
- scheduledDeparture
- }}
- arrivalStoptime {{
- stop {{
- gtfsId
- }}
- }}
- {geometryField}
- stoptimes {{
- stop {{
- name
- lat
- lon
- }}
- scheduledDeparture
- }}
- }}
- }}
- }}
- }}
- ");
- }
-}
-
-public class ArrivalsAtStopResponse : AbstractGraphResponse
-{
- [JsonPropertyName("stop")] public required StopItem Stop { get; set; }
-
- public class StopItem
- {
- [JsonPropertyName("code")] public required string Code { get; set; }
-
- [JsonPropertyName("name")] public required string Name { get; set; }
-
- [JsonPropertyName("lat")] public double Lat { get; set; }
-
- [JsonPropertyName("lon")] public double Lon { get; set; }
-
- [JsonPropertyName("routes")] public List<RouteDetails> Routes { get; set; } = [];
-
- [JsonPropertyName("arrivals")] public List<Arrival> Arrivals { get; set; } = [];
- }
-
- public class Arrival
- {
- [JsonPropertyName("headsign")] public required string Headsign { get; set; }
-
- [JsonPropertyName("scheduledDeparture")]
- public int ScheduledDepartureSeconds { get; set; }
-
- [JsonPropertyName("serviceDay")]
- public long ServiceDay { get; set; }
-
- [JsonPropertyName("pickupType")] public required string PickupTypeOriginal { get; set; }
-
- public PickupType PickupTypeParsed => PickupType.Parse(PickupTypeOriginal);
-
- [JsonPropertyName("trip")] public required TripDetails Trip { get; set; }
- }
-
- public class TripDetails
- {
- [JsonPropertyName("gtfsId")] public required string GtfsId { get; set; }
-
- [JsonPropertyName("serviceId")] public required string ServiceId { get; set; }
-
- [JsonPropertyName("routeShortName")] public required string RouteShortName { get; set; }
-
- [JsonPropertyName("departureStoptime")]
- public required DepartureStoptime DepartureStoptime { get; set; }
-
- [JsonPropertyName("arrivalStoptime")]
- public required ArrivalStoptime ArrivalStoptime { get; set; }
-
- [JsonPropertyName("route")] public required RouteDetails Route { get; set; }
-
- [JsonPropertyName("tripGeometry")] public GeometryDetails? Geometry { get; set; }
-
- [JsonPropertyName("stoptimes")] public List<StoptimeDetails> Stoptimes { get; set; } = [];
- }
-
- public class GeometryDetails
- {
- [JsonPropertyName("points")] public string? Points { get; set; }
- }
-
- public class StoptimeDetails
- {
- [JsonPropertyName("stop")] public required StopDetails Stop { get; set; }
- [JsonPropertyName("scheduledDeparture")] public int ScheduledDeparture { get; set; }
- }
-
- public class StopDetails
- {
- [JsonPropertyName("name")] public required string Name { get; set; }
- [JsonPropertyName("lat")] public double Lat { get; set; }
- [JsonPropertyName("lon")] public double Lon { get; set; }
- }
-
- public class DepartureStoptime
- {
- [JsonPropertyName("scheduledDeparture")]
- public int ScheduledDeparture { get; set; }
- }
-
- public class ArrivalStoptime
- {
- [JsonPropertyName("stop")] public ArrivalStoptimeStop Stop { get; set; }
- }
-
- public class ArrivalStoptimeStop
- {
- [JsonPropertyName("gtfsId")] public required string GtfsId { get; set; }
- }
-
- public class RouteDetails
- {
- [JsonPropertyName("gtfsId")] public required string GtfsId { get; set; }
- public string GtfsIdValue => GtfsId.Split(':', 2)[1];
-
- [JsonPropertyName("shortName")] public string? ShortName { get; set; }
-
- [JsonPropertyName("color")] public string? Color { get; set; }
-
- [JsonPropertyName("textColor")] public string? TextColor { get; set; }
-
- [JsonPropertyName("longName")] public string? LongName { get; set; }
- }
-
- public class PickupType
- {
- private readonly string _value;
-
- private PickupType(string value)
- {
- _value = value;
- }
-
- public static PickupType Parse(string value)
- {
- return value switch
- {
- "SCHEDULED" => Scheduled,
- "NONE" => None,
- "CALL_AGENCY" => CallAgency,
- "COORDINATE_WITH_DRIVER" => CoordinateWithDriver,
- _ => throw new ArgumentException("Unsupported pickup type ", value)
- };
- }
-
- public static readonly PickupType Scheduled = new PickupType("SCHEDULED");
- public static readonly PickupType None = new PickupType("NONE");
- public static readonly PickupType CallAgency = new PickupType("CALL_AGENCY");
- public static readonly PickupType CoordinateWithDriver = new PickupType("COORDINATE_WITH_DRIVER");
-
- public override bool Equals(object? other)
- {
- if (other is not PickupType otherPt)
- {
- return false;
- }
-
- return otherPt._value == _value;
- }
-
- public override int GetHashCode()
- {
- return _value.GetHashCode();
- }
- }
-}
diff --git a/src/Costasdev.Busurbano.Sources.OpenTripPlannerGql/Queries/PlanConnectionContent.cs b/src/Costasdev.Busurbano.Sources.OpenTripPlannerGql/Queries/PlanConnectionContent.cs
deleted file mode 100644
index db3de49..0000000
--- a/src/Costasdev.Busurbano.Sources.OpenTripPlannerGql/Queries/PlanConnectionContent.cs
+++ /dev/null
@@ -1,245 +0,0 @@
-using System.Globalization;
-using System.Text.Json.Serialization;
-
-namespace Costasdev.Busurbano.Sources.OpenTripPlannerGql.Queries;
-
-#pragma warning disable CS8618
-
-public class PlanConnectionContent : IGraphRequest<PlanConnectionContent.Args>
-{
- public record Args(
- double StartLatitude,
- double StartLongitude,
- double EndLatitude,
- double EndLongitude,
- DateTimeOffset ReferenceTime,
- bool ReferenceIsArrival = false
- );
-
- public static string Query(Args args)
- {
- var madridTz = TimeZoneInfo.FindSystemTimeZoneById("Europe/Madrid");
-
- // Treat incoming DateTime as Madrid local wall-clock time
- var localMadridTime =
- DateTime.SpecifyKind(args.ReferenceTime.UtcDateTime, DateTimeKind.Unspecified);
-
- var offset = madridTz.GetUtcOffset(localMadridTime);
-
- var dateTimeToUse = new DateTimeOffset(args.ReferenceTime.DateTime + offset, offset);
-
- var dateTimeParameter = args.ReferenceIsArrival ? $"latestArrival:\"{dateTimeToUse:O}\"" : $"earliestDeparture:\"{dateTimeToUse:O}\"";
-
- return string.Create(CultureInfo.InvariantCulture,
- $$"""
- query Query {
- planConnection(
- first: 4
- origin: {
- location:{
- coordinate:{
- latitude:{{args.StartLatitude}}
- longitude:{{args.StartLongitude}}
- }
- }
- }
- destination:{
- location:{
- coordinate:{
- latitude:{{args.EndLatitude}}
- longitude:{{args.EndLongitude}}
- }
- }
- }
- dateTime:{
- {{dateTimeParameter}}
- }
- searchWindow:"PT5H"
- ) {
- edges {
- node {
- duration
- start
- end
- walkTime
- walkDistance
- waitingTime
- legs {
- start {
- scheduledTime
- }
- end {
- scheduledTime
- }
- mode
- route {
- gtfsId
- shortName
- longName
- agency {
- name
- }
- color
- textColor
- }
- from {
- name
- lat
- lon
- stop {
- gtfsId
- code
- name
- lat
- lon
- zoneId
- }
- }
- to {
- name
- lat
- lon
- stop {
- gtfsId
- code
- name
- lat
- lon
- zoneId
- }
- }
- stopCalls {
- stopLocation {
- ... on Stop {
- gtfsId
- code
- name
- lat
- lon
- }
- }
- }
- legGeometry {
- points
- }
- steps {
- distance
- relativeDirection
- streetName
- absoluteDirection
- lat
- lon
- }
- headsign
- distance
- }
- }
- }
- }
- }
- """);
- }
-}
-
-public class PlanConnectionResponse : AbstractGraphResponse
-{
- public PlanConnectionItem PlanConnection { get; set; }
-
- public class PlanConnectionItem
- {
- [JsonPropertyName("edges")]
- public Edge[] Edges { get; set; }
- }
-
- public class Edge
- {
- [JsonPropertyName("node")]
- public Node Node { get; set; }
- }
-
- public class Node
- {
- [JsonPropertyName("duration")] public int DurationSeconds { get; set; }
- [JsonPropertyName("start")] public string Start8601 { get; set; }
- [JsonPropertyName("end")] public string End8601 { get; set; }
- [JsonPropertyName("walkTime")] public int WalkSeconds { get; set; }
- [JsonPropertyName("walkDistance")] public double WalkDistance { get; set; }
- [JsonPropertyName("waitingTime")] public int WaitingSeconds { get; set; }
- [JsonPropertyName("legs")] public Leg[] Legs { get; set; }
- }
-
- public class Leg
- {
- [JsonPropertyName("start")] public ScheduledTimeContainer Start { get; set; }
- [JsonPropertyName("end")] public ScheduledTimeContainer End { get; set; }
- [JsonPropertyName("mode")] public string Mode { get; set; } // TODO: Make enum, maybe
- [JsonPropertyName("route")] public TransitRoute? Route { get; set; }
- [JsonPropertyName("from")] public LegPosition From { get; set; }
- [JsonPropertyName("to")] public LegPosition To { get; set; }
- [JsonPropertyName("stopCalls")] public StopCall[] StopCalls { get; set; }
- [JsonPropertyName("legGeometry")] public LegGeometry LegGeometry { get; set; }
- [JsonPropertyName("steps")] public Step[] Steps { get; set; }
- [JsonPropertyName("headsign")] public string? Headsign { get; set; }
- [JsonPropertyName("distance")] public double Distance { get; set; }
- }
-
- public class TransitRoute
- {
- [JsonPropertyName("gtfsId")] public string GtfsId { get; set; }
- [JsonPropertyName("shortName")] public string ShortName { get; set; }
- [JsonPropertyName("longName")] public string LongName { get; set; }
- [JsonPropertyName("agency")] public AgencyNameContainer Agency { get; set; }
- [JsonPropertyName("color")] public string Color { get; set; }
- [JsonPropertyName("textColor")] public string TextColor { get; set; }
- }
-
- public class LegPosition
- {
- [JsonPropertyName("name")] public string Name { get; set; }
- [JsonPropertyName("lat")] public double Latitude { get; set; }
- [JsonPropertyName("lon")] public double Longitude { get; set; }
- [JsonPropertyName("stop")] public StopLocation Stop { get; set; }
- }
-
- public class ScheduledTimeContainer
- {
- [JsonPropertyName("scheduledTime")]
- public string ScheduledTime8601 { get; set; }
- }
-
- public class AgencyNameContainer
- {
- [JsonPropertyName("name")] public string Name { get; set; }
- }
-
- public class StopCall
- {
- [JsonPropertyName("stopLocation")]
- public StopLocation StopLocation { get; set; }
- }
-
- public class StopLocation
- {
- [JsonPropertyName("gtfsId")] public string GtfsId { get; set; }
- [JsonPropertyName("code")] public string Code { get; set; }
- [JsonPropertyName("name")] public string Name { get; set; }
- [JsonPropertyName("lat")] public double Latitude { get; set; }
- [JsonPropertyName("lon")] public double Longitude { get; set; }
- [JsonPropertyName("zoneId")] public string? ZoneId { get; set; }
- }
-
- public class Step
- {
- [JsonPropertyName("distance")] public double Distance { get; set; }
- [JsonPropertyName("relativeDirection")] public string RelativeDirection { get; set; }
- [JsonPropertyName("streetName")] public string StreetName { get; set; } // TODO: "sidewalk", "path" or actual street name
- [JsonPropertyName("absoluteDirection")] public string AbsoluteDirection { get; set; }
- [JsonPropertyName("lat")] public double Latitude { get; set; }
- [JsonPropertyName("lon")] public double Longitude { get; set; }
- }
-
- public class LegGeometry
- {
- [JsonPropertyName("points")] public string? Points { get; set; }
- }
-}
diff --git a/src/Costasdev.Busurbano.Sources.OpenTripPlannerGql/Queries/RouteDetailsContent.cs b/src/Costasdev.Busurbano.Sources.OpenTripPlannerGql/Queries/RouteDetailsContent.cs
deleted file mode 100644
index 1ba85fa..0000000
--- a/src/Costasdev.Busurbano.Sources.OpenTripPlannerGql/Queries/RouteDetailsContent.cs
+++ /dev/null
@@ -1,112 +0,0 @@
-using System.Globalization;
-using System.Text.Json.Serialization;
-
-namespace Costasdev.Busurbano.Sources.OpenTripPlannerGql.Queries;
-
-public class RouteDetailsContent : IGraphRequest<RouteDetailsContent.Args>
-{
- public record Args(string Id, string ServiceDate);
-
- public static string Query(Args args)
- {
- return string.Create(CultureInfo.InvariantCulture, $$"""
- query Query {
- route(id: "{{args.Id}}") {
- gtfsId
- shortName
- longName
- color
- textColor
- agency {
- name
- }
-
- patterns {
- id
- name
- headsign
- directionId
- code
- semanticHash
-
- patternGeometry {
- points
- }
-
- stops {
- gtfsId
- code
- name
- lat
- lon
- }
-
- tripsForDate(serviceDate: "{{args.ServiceDate}}") {
- stoptimes {
- scheduledDeparture
- }
- }
- }
- }
- }
- """);
- }
-}
-
-public class RouteDetailsResponse : AbstractGraphResponse
-{
- [JsonPropertyName("route")] public RouteItem? Route { get; set; }
-
- public class RouteItem
- {
- [JsonPropertyName("gtfsId")] public string? GtfsId { get; set; }
- [JsonPropertyName("shortName")] public string? ShortName { get; set; }
- [JsonPropertyName("longName")] public string? LongName { get; set; }
- [JsonPropertyName("color")] public string? Color { get; set; }
- [JsonPropertyName("textColor")] public string? TextColor { get; set; }
- [JsonPropertyName("agency")] public AgencyItem? Agency { get; set; }
- [JsonPropertyName("patterns")] public List<PatternItem> Patterns { get; set; } = [];
- }
-
- public class AgencyItem
- {
- [JsonPropertyName("name")] public string? Name { get; set; }
- }
-
- public class PatternItem
- {
- [JsonPropertyName("id")] public required string Id { get; set; }
- [JsonPropertyName("name")] public string? Name { get; set; }
- [JsonPropertyName("headsign")] public string? Headsign { get; set; }
- [JsonPropertyName("directionId")] public int DirectionId { get; set; }
- [JsonPropertyName("code")] public string? Code { get; set; }
- [JsonPropertyName("semanticHash")] public string? SemanticHash { get; set; }
- [JsonPropertyName("patternGeometry")] public GeometryItem? PatternGeometry { get; set; }
- [JsonPropertyName("stops")] public List<StopItem> Stops { get; set; } = [];
- [JsonPropertyName("tripsForDate")] public List<TripItem> TripsForDate { get; set; } = [];
- }
-
- public class GeometryItem
- {
- [JsonPropertyName("points")] public string? Points { get; set; }
- }
-
- public class StopItem
- {
- [JsonPropertyName("gtfsId")] public required string GtfsId { get; set; }
- [JsonPropertyName("code")] public string? Code { get; set; }
- [JsonPropertyName("name")] public required string Name { get; set; }
- [JsonPropertyName("lat")] public double Lat { get; set; }
- [JsonPropertyName("lon")] public double Lon { get; set; }
- }
-
- public class TripItem
- {
- [JsonPropertyName("stoptimes")] public List<StoptimeItem> Stoptimes { get; set; } = [];
- }
-
- public class StoptimeItem
- {
- [JsonPropertyName("scheduledDeparture")] public int ScheduledDeparture { get; set; }
- }
-}
diff --git a/src/Costasdev.Busurbano.Sources.OpenTripPlannerGql/Queries/RoutesListContent.cs b/src/Costasdev.Busurbano.Sources.OpenTripPlannerGql/Queries/RoutesListContent.cs
deleted file mode 100644
index fc69452..0000000
--- a/src/Costasdev.Busurbano.Sources.OpenTripPlannerGql/Queries/RoutesListContent.cs
+++ /dev/null
@@ -1,66 +0,0 @@
-using System.Globalization;
-using System.Text.Json.Serialization;
-
-namespace Costasdev.Busurbano.Sources.OpenTripPlannerGql.Queries;
-
-public class RoutesListContent : IGraphRequest<RoutesListContent.Args>
-{
- public record Args(string[] Feeds, string ServiceDate);
-
- public static string Query(Args args)
- {
- var feedsStr = string.Join(", ", args.Feeds.Select(f => $"\"{f}\""));
- return string.Create(CultureInfo.InvariantCulture, $$"""
- query Query {
- routes(feeds: [{{feedsStr}}]) {
- gtfsId
- shortName
- longName
- color
- textColor
- sortOrder
- agency {
- name
- }
- patterns {
- tripsForDate(serviceDate: "{{args.ServiceDate}}") {
- id
- }
- }
- }
- }
- """);
- }
-}
-
-public class RoutesListResponse : AbstractGraphResponse
-{
- [JsonPropertyName("routes")] public List<RouteItem> Routes { get; set; } = [];
-
- public class RouteItem
- {
- [JsonPropertyName("gtfsId")] public required string GtfsId { get; set; }
- [JsonPropertyName("shortName")] public string? ShortName { get; set; }
- [JsonPropertyName("longName")] public string? LongName { get; set; }
- [JsonPropertyName("color")] public string? Color { get; set; }
- [JsonPropertyName("textColor")] public string? TextColor { get; set; }
- [JsonPropertyName("sortOrder")] public int? SortOrder { get; set; }
- [JsonPropertyName("agency")] public AgencyItem? Agency { get; set; }
- [JsonPropertyName("patterns")] public List<PatternItem> Patterns { get; set; } = [];
- }
-
- public class AgencyItem
- {
- [JsonPropertyName("name")] public string? Name { get; set; }
- }
-
- public class PatternItem
- {
- [JsonPropertyName("tripsForDate")] public List<TripItem> TripsForDate { get; set; } = [];
- }
-
- public class TripItem
- {
- [JsonPropertyName("id")] public string? Id { get; set; }
- }
-}
diff --git a/src/Costasdev.Busurbano.Sources.OpenTripPlannerGql/Queries/StopTile.cs b/src/Costasdev.Busurbano.Sources.OpenTripPlannerGql/Queries/StopTile.cs
deleted file mode 100644
index 792d19e..0000000
--- a/src/Costasdev.Busurbano.Sources.OpenTripPlannerGql/Queries/StopTile.cs
+++ /dev/null
@@ -1,76 +0,0 @@
-using System.Globalization;
-using System.Text.Json.Serialization;
-
-namespace Costasdev.Busurbano.Sources.OpenTripPlannerGql.Queries;
-
-public class StopTileRequestContent : IGraphRequest<StopTileRequestContent.Bbox>
-{
- public record Bbox(double MinLon, double MinLat, double MaxLon, double MaxLat);
-
- public static string Query(Bbox bbox)
- {
- return string.Create(CultureInfo.InvariantCulture, $@"
- query Query {{
- stopsByBbox(
- minLat: {bbox.MinLat:F6}
- minLon: {bbox.MinLon:F6}
- maxLon: {bbox.MaxLon:F6}
- maxLat: {bbox.MaxLat:F6}
- ) {{
- gtfsId
- code
- name
- lat
- lon
- routes {{
- gtfsId
- shortName
- color
- textColor
- }}
- }}
- }}
- ");
- }
-}
-
-public class StopTileResponse : AbstractGraphResponse
-{
- [JsonPropertyName("stopsByBbox")]
- public List<Stop>? StopsByBbox { get; set; }
-
- public record Stop
- {
- [JsonPropertyName("gtfsId")]
- public required string GtfsId { get; set; }
-
- [JsonPropertyName("code")]
- public string? Code { get; set; }
-
- [JsonPropertyName("name")]
- public required string Name { get; set; }
-
- [JsonPropertyName("lat")]
- public required double Lat { get; set; }
-
- [JsonPropertyName("lon")]
- public required double Lon { get; set; }
-
- [JsonPropertyName("routes")]
- public List<Route>? Routes { get; set; }
- }
-
- public record Route
- {
- [JsonPropertyName("gtfsId")]
- public required string GtfsId { get; set; }
- [JsonPropertyName("shortName")]
- public required string ShortName { get; set; }
-
- [JsonPropertyName("color")]
- public string? Color { get; set; }
-
- [JsonPropertyName("textColor")]
- public string? TextColor { get; set; }
- }
-}
diff --git a/src/Costasdev.Busurbano.Sources.OpenTripPlannerGql/Queries/StopsInfo.cs b/src/Costasdev.Busurbano.Sources.OpenTripPlannerGql/Queries/StopsInfo.cs
deleted file mode 100644
index ce6a8c7..0000000
--- a/src/Costasdev.Busurbano.Sources.OpenTripPlannerGql/Queries/StopsInfo.cs
+++ /dev/null
@@ -1,57 +0,0 @@
-using System.Globalization;
-using System.Text.Json.Serialization;
-
-namespace Costasdev.Busurbano.Sources.OpenTripPlannerGql.Queries;
-
-public class StopsInfoContent : IGraphRequest<StopsInfoContent.Args>
-{
- public record Args(IEnumerable<string> Ids);
-
- public static string Query(Args args)
- {
- var idsString = string.Join("\",\"", args.Ids);
- return string.Create(CultureInfo.InvariantCulture, $@"
- query Query {{
- stops(ids: [""{idsString}""]) {{
- gtfsId
- code
- name
- lat
- lon
- routes {{
- shortName
- color
- textColor
- }}
- }}
- }}
- ");
- }
-}
-
-public class StopsInfoResponse : AbstractGraphResponse
-{
- [JsonPropertyName("stops")] public List<StopItem>? Stops { get; set; }
-
- public class StopItem
- {
- [JsonPropertyName("gtfsId")] public required string GtfsId { get; set; }
-
- [JsonPropertyName("code")] public string? Code { get; set; }
-
- [JsonPropertyName("name")] public required string Name { get; set; }
-
- [JsonPropertyName("lat")] public double Lat { get; set; }
-
- [JsonPropertyName("lon")] public double Lon { get; set; }
-
- [JsonPropertyName("routes")] public List<RouteDetails> Routes { get; set; } = [];
- }
-
- public class RouteDetails
- {
- [JsonPropertyName("shortName")] public string? ShortName { get; set; }
- [JsonPropertyName("color")] public string? Color { get; set; }
- [JsonPropertyName("textColor")] public string? TextColor { get; set; }
- }
-}
diff --git a/src/Costasdev.Busurbano.Sources.OpenTripPlannerGql/ResponseTypes.cs b/src/Costasdev.Busurbano.Sources.OpenTripPlannerGql/ResponseTypes.cs
deleted file mode 100644
index 237537f..0000000
--- a/src/Costasdev.Busurbano.Sources.OpenTripPlannerGql/ResponseTypes.cs
+++ /dev/null
@@ -1,36 +0,0 @@
-using System.Text.Json.Serialization;
-
-namespace Costasdev.Busurbano.Sources.OpenTripPlannerGql;
-
-public class GraphClientRequest
-{
- public string OperationName { get; set; } = "Query";
- public required string Query { get; set; }
-}
-
-public class GraphClientResponse<T> where T : AbstractGraphResponse
-{
- [JsonPropertyName("data")]
- public T? Data { get; set; }
-
- [JsonPropertyName("errors")]
- public List<GraphClientError>? Errors { get; set; }
-
- public bool IsSuccess => Errors == null || Errors.Count == 0;
-}
-
-public interface IGraphRequest<T>
-{
- static abstract string Query(T parameters);
-}
-
-public class AbstractGraphResponse
-{
-}
-
-public class GraphClientError
-{
- [JsonPropertyName("message")]
- public required string Message { get; set; }
-}
-