aboutsummaryrefslogtreecommitdiff
path: root/src/Enmarcha.Sources.OpenTripPlannerGql/Queries
diff options
context:
space:
mode:
Diffstat (limited to 'src/Enmarcha.Sources.OpenTripPlannerGql/Queries')
-rw-r--r--src/Enmarcha.Sources.OpenTripPlannerGql/Queries/RoutesListContent.cs11
-rw-r--r--src/Enmarcha.Sources.OpenTripPlannerGql/Queries/StopTile.cs25
2 files changed, 24 insertions, 12 deletions
diff --git a/src/Enmarcha.Sources.OpenTripPlannerGql/Queries/RoutesListContent.cs b/src/Enmarcha.Sources.OpenTripPlannerGql/Queries/RoutesListContent.cs
index 71360ee..9894f14 100644
--- a/src/Enmarcha.Sources.OpenTripPlannerGql/Queries/RoutesListContent.cs
+++ b/src/Enmarcha.Sources.OpenTripPlannerGql/Queries/RoutesListContent.cs
@@ -1,4 +1,3 @@
-using System.Globalization;
using System.Text.Json.Serialization;
namespace Enmarcha.Sources.OpenTripPlannerGql.Queries;
@@ -9,10 +8,12 @@ public class RoutesListContent : IGraphRequest<RoutesListContent.Args>
public static string Query(Args args)
{
- var feedsStr = string.Join(", ", args.Feeds.Select(f => $"\"{f}\""));
- return string.Create(CultureInfo.InvariantCulture, $$"""
+ var feedsArg = args.Feeds.Length > 0
+ ? $"(feeds: [{string.Join(", ", args.Feeds.Select(f => $"\"{f}\""))}])"
+ : "";
+ return $$"""
query Query {
- routes(feeds: [{{feedsStr}}]) {
+ routes{{feedsArg}} {
gtfsId
shortName
longName
@@ -29,7 +30,7 @@ public class RoutesListContent : IGraphRequest<RoutesListContent.Args>
}
}
}
- """);
+ """;
}
}
diff --git a/src/Enmarcha.Sources.OpenTripPlannerGql/Queries/StopTile.cs b/src/Enmarcha.Sources.OpenTripPlannerGql/Queries/StopTile.cs
index fad28eb..6079ea3 100644
--- a/src/Enmarcha.Sources.OpenTripPlannerGql/Queries/StopTile.cs
+++ b/src/Enmarcha.Sources.OpenTripPlannerGql/Queries/StopTile.cs
@@ -3,19 +3,30 @@ using System.Text.Json.Serialization;
namespace Enmarcha.Sources.OpenTripPlannerGql.Queries;
-public class StopTileRequestContent : IGraphRequest<StopTileRequestContent.Bbox>
+public class StopTileRequestContent : IGraphRequest<StopTileRequestContent.TileRequestParams>
{
- public record Bbox(double MinLon, double MinLat, double MaxLon, double MaxLat);
+ public record TileRequestParams(
+ double MinLon,
+ double MinLat,
+ double MaxLon,
+ double MaxLat,
+ string[]? Feeds = null
+ );
- public static string Query(Bbox bbox)
+ public static string Query(TileRequestParams req)
{
+ var feedsFilter = req.Feeds != null && req.Feeds.Length > 0
+ ? $"feeds: [{string.Join(", ", req.Feeds.Select(f => $"\"{f}\""))}]"
+ : string.Empty;
+
return string.Create(CultureInfo.InvariantCulture, $@"
query Query {{
stopsByBbox(
- minLat: {bbox.MinLat:F6}
- minLon: {bbox.MinLon:F6}
- maxLon: {bbox.MaxLon:F6}
- maxLat: {bbox.MaxLat:F6}
+ minLat: {req.MinLat:F6}
+ minLon: {req.MinLon:F6}
+ maxLon: {req.MaxLon:F6}
+ maxLat: {req.MaxLat:F6}
+ {feedsFilter}
) {{
gtfsId
code