resources/table.ps1

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
  }
}