Get-NSTrainStation.ps1
#Requires -Module @{ModuleName='NSTrainTime'; RequiredVersion='2.0.0.0'} function Get-NSTrainStation { <# .SYNOPSIS Find a list of matching Dutch train stations. .DESCRIPTION Gets train station names from the Dutch NS API (https://www.ns.nl/en/travel-information/ns-api) via Azure Serverless Function Use an Internet connected machine Requires NSTrainTime module .NOTES Author: Kenny White 07/03/2020 .Example Get-NSTrainStation -StationName 'Amsterd' Returns sorted results of a wildcard search Amsterdam Amsterdam Airport Amsterdam Amstel Amsterdam Bijlmer ArenA Amsterdam Centraal Amsterdam Holendrecht Amsterdam Lelylaan Amsterdam Muiderpoort Amsterdam RAI Amsterdam Science Park Amsterdam Sloterdijk Amsterdam Van der Madeweg Amsterdam Zuid Nieuw Amsterdam #> [cmdletbinding()] [alias('gnsts')] param( #Station or part-station name [Parameter(Mandatory = $true, Position = 0)] [string]$Station, #Optional NS Train stations API URI [Parameter(Position=1)] [uri]$URI = "https://nstraintime2.azurewebsites.net/api/Get-NSTrainStation" ) $body = [PSCustomObject]@{Station = $Station} | ConvertTo-Json $result = Invoke-RestMethod -uri $URI -Method Post -Body $body $result | ForEach-Object { [NSStation]::new( $_.UICCode, $_.ShortName, $_.MiddleName, $_.LongName ) } } |