Public/Find-AirTableRecord.ps1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
function Find-AirTableRecord { param ( [Parameter(Mandatory)] [string]$ApiKey, [Parameter(Mandatory)] [string]$BaseName, [Parameter(Mandatory, Position = 0)] [string]$TableName, [Parameter()] [ValidateNotNull()] [string[]]$Fields = @(), [Parameter()] [string]$Filter, [ValidateRange(1, [int]::MaxValue)] [int]$MaxRecords ) $Filter = [System.Web.HttpUtility]::UrlEncode($Filter) $PathElements = @( if ($Fields) { "fields=$($Fields -join ',')" } if ($Filter) { "filterByFormula=$Filter" } if ($MaxRecords) { "maxRecords=$MaxRecords" } ) Invoke-AirTableApi ` -ApiKey $ApiKey ` -BaseName $BaseName ` -TableName $TableName ` -Method Get ` -QueryString ($PathElements -join '&') | Select-Object -ExpandProperty Records | ConvertFrom-AirTableRecord -TableName $TableName } |