Skip to content
This repository was archived by the owner on Mar 27, 2026. It is now read-only.
Prev Previous commit
Next Next commit
Add Next and Fastest Boards with expanded detail variants
  • Loading branch information
jpsingleton committed Jul 27, 2015
commit 8cc5ad34ee800701fce0adaa566903c37f982541
18 changes: 18 additions & 0 deletions src/Huxley/Controllers/StationController.cs
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,24 @@ public async Task<BaseStationBoard> Get([FromUri] StationBoardRequest request) {
return arrivals.GetStationBoardResult;
}

if (Board.Next == request.Board) {
if (request.Expand) {
var nextWithDetails = await Client.GetNextDeparturesWithDetailsAsync(token, request.Crs, request.FilterCrs.Split(','), 0, 0);
return nextWithDetails.DeparturesBoard;
}
var next = await Client.GetNextDeparturesAsync(token, request.Crs, request.FilterCrs.Split(','), 0, 0);
return next.DeparturesBoard;
}

if (Board.Fastest == request.Board) {
if (request.Expand) {
var nextWithDetails = await Client.GetFastestDeparturesWithDetailsAsync(token, request.Crs, request.FilterCrs.Split(','), 0, 0);
return nextWithDetails.DeparturesBoard;
}
var next = await Client.GetFastestDeparturesAsync(token, request.Crs, request.FilterCrs.Split(','), 0, 0);
return next.DeparturesBoard;
}

// Default all (departures and arrivals board)
if (request.Expand) {
var boardWithDetails = await Client.GetArrDepBoardWithDetailsAsync(token, request.NumRows, request.Crs, request.FilterCrs, request.FilterType, 0, 0);
Expand Down
17 changes: 17 additions & 0 deletions src/Huxley/ILdbClient.cs
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,23 @@ Task<GetArrDepBoardWithDetailsResponse> GetArrDepBoardWithDetailsAsync(AccessTok
FilterType filterType, int timeOffset,
int timeWindow);

Task<GetNextDeparturesResponse> GetNextDeparturesAsync(AccessToken accessToken, string crs, string[] filterList,
int timeOffset, int timeWindow);

Task<GetNextDeparturesWithDetailsResponse> GetNextDeparturesWithDetailsAsync(AccessToken accessToken, string crs,
string[] filterList, int timeOffset,
int timeWindow);

Task<GetFastestDeparturesResponse> GetFastestDeparturesAsync(AccessToken accessToken, string crs,
string[] filterList, int timeOffset,
int timeWindow);

Task<GetFastestDeparturesWithDetailsResponse> GetFastestDeparturesWithDetailsAsync(AccessToken accessToken,
string crs, string[] filterList,
int timeOffset,
int timeWindow);


Task<GetServiceDetailsResponse> GetServiceDetailsAsync(AccessToken accessToken, string serviceId);
}
}
16 changes: 16 additions & 0 deletions src/Huxley/LdbClient.cs
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,22 @@ public async Task<GetArrDepBoardWithDetailsResponse> GetArrDepBoardWithDetailsAs
return await Execute(() => client.GetArrDepBoardWithDetailsAsync(accessToken, numRows, crs, filterCrs, filterType, timeOffset, timeWindow));
}

public async Task<GetNextDeparturesResponse> GetNextDeparturesAsync(AccessToken accessToken, string crs, string[] filterList, int timeOffset, int timeWindow) {
return await Execute(() => client.GetNextDeparturesAsync(accessToken, crs, filterList, timeOffset, timeWindow));
}

public async Task<GetNextDeparturesWithDetailsResponse> GetNextDeparturesWithDetailsAsync(AccessToken accessToken, string crs, string[] filterList, int timeOffset, int timeWindow) {
return await Execute(() => client.GetNextDeparturesWithDetailsAsync(accessToken, crs, filterList, timeOffset, timeWindow));
}

public async Task<GetFastestDeparturesResponse> GetFastestDeparturesAsync(AccessToken accessToken, string crs, string[] filterList, int timeOffset, int timeWindow) {
return await Execute(() => client.GetFastestDeparturesAsync(accessToken, crs, filterList, timeOffset, timeWindow));
}

public async Task<GetFastestDeparturesWithDetailsResponse> GetFastestDeparturesWithDetailsAsync(AccessToken accessToken, string crs, string[] filterList, int timeOffset, int timeWindow) {
return await Execute(() => client.GetFastestDeparturesWithDetailsAsync(accessToken, crs, filterList, timeOffset, timeWindow));
}

public async Task<GetServiceDetailsResponse> GetServiceDetailsAsync(AccessToken accessToken, string serviceId) {
return await Execute(() => client.GetServiceDetailsAsync(accessToken, serviceId));
}
Expand Down
2 changes: 2 additions & 0 deletions src/Huxley/Models/Board.cs
Original file line number Diff line number Diff line change
Expand Up @@ -23,5 +23,7 @@ public enum Board {
All,
Arrivals,
Departures,
Next,
Fastest
}
}