resources/table.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
function New-QlikTable() {
    [CmdletBinding()]
    param (
        [parameter(Mandatory = $true)]
        [string] $Type,

        [parameter(Mandatory = $true)]
        [PSObject[]] $Columns,

        [string] $Filter,
        [int] $Skip,
        [int] $Take,
        [string] $SortColumn,
        [bool] $OrderAscending
    )

    process {
        $json = @{
            type = $Type
            columns = $Columns
        } | ConvertTo-Json -Compress -Depth 10

        $path = "/qrs/$Type/table"
        $query = @(
            if ($Filter) { "filter=$Filter" }
            if ($Skip) { "skip=$Skip" }
            if ($Take) { "take=$Take" }
            if ($SortColumn) { "sortColumn=$SortColumn" }
            if ($psBoundParameters.ContainsKey("OrderAscending")) { "orderAscending=$OrderAscending" }
        ) -join '&'

        if ($query) { $path = $path, $query -join '?' }
        Return Invoke-QlikPost $path $json
    }
}