Public/Update-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
function Update-AirTableRecord
{
    param
    (
        [Parameter(Mandatory)]
        [string]$ApiKey,

        [Parameter(Mandatory)]
        [string]$BaseName,

        [Parameter(Mandatory, Position = 0)]
        [string]$TableName,

        [Parameter(Mandatory, Position = 1)]
        [string]$RecordID,

        [Parameter(Position = 2)]
        [hashtable]$Fields,

        [switch]$ClearUnspecifiedFields
    )

    $Method = if ($ClearUnspecifiedFields) { 'Put' } else { 'Patch' }

    Invoke-AirTableApi `
        -ApiKey $ApiKey `
        -BaseName $BaseName `
        -TableName $TableName `
        -Path $RecordID `
        -Method $Method `
        -PayLoad (@{fields = $Fields } | ConvertTo-Json) |
    Convertfrom-AirTableRecord -TableName $TableName
}