Public/Get-NexosisView.ps1

Function Get-NexosisView {
<#
    .Synopsis
    Gets the list of view definitions that have been created

    .Description
    Returns a list of View definitions.

    .Parameter PartialName
    Limits results to only those view definitions with names containing the specified value

    .Parameter DataSetName
    Limits results to only those view definitions that reference the specified dataset

    .Parameter Page
    Zero-based page number of results to retrieve.

    .Parameter PageSize
    Count of datasets to retrieve in each page (default 100, max 1000).

    .Link
    http://docs.nexosis.com/clients/powershell

    .Example
    # Get a list of all views
    Get-NexosisView

    .Example
    # Get all the Views that have the world 'sales' in the dataset name
    Get-NexosisView -dataSetName sales

    .Example
    # Get the first two views and convert it to Json
    Get-NexosisView -page 0 -pageSize 2 | ConvertTo-Json -Depth 4

    .Example
    # Get page 0 of datasets that have the world 'sales' in the dataset name, with a max of 20 for this page
    Get-NexosisDataSet -partialName 'sales' -page 0 -pageSize 20
#>
[CmdletBinding()]
    Param(
        [Parameter(Mandatory=$false, ValueFromPipeline=$True)]
        [string]$partialName=$null,
        [Parameter(Mandatory=$false, ValueFromPipelineByPropertyName=$True)]
        [string]$dataSetName=$null,
        [Parameter(Mandatory=$false)]
        [int]$page=0,
        [Parameter(Mandatory=$false)]
        [int]$pageSize=$script:PSNexosisVars.DefaultPageSize
    )
    process {
        if ($page -lt 0) {
            throw "Parameter '-page' must be an integer greater than or equal to 0."
        }

        if (($pageSize -gt ($script:MaxPageSize)) -or ($pageSize -lt 1)) {
            throw "Parameter '-pageSize' must be an integer between 1 and $script:MaxPageSize."
        }

        $params = [System.Web.HttpUtility]::ParseQueryString([String]::Empty)

        if ($partialName.Trim().Length -gt 0) { 
            $params['partialName'] = $partialName
        }

        if ($dataSetName.Trim().Length -gt 0) {
            $params['dataSetName'] = $dataSetName
        }
    
        if ($page -ne 0) {
            $params['page'] = $page
        }

        if ($pageSize -ne ($script:PSNexosisVars.DefaultPageSize)) {
            $params['pageSize'] = $pageSize
        } elseif ($script:PSNexosisVars.DefaultPageSize -ne $script:ServerDefaultPageSize) {
            $params['pageSize'] = $script:PSNexosisVars.DefaultPageSize
        }


        $response = Invoke-Http -method Get -path 'views' -params $params
        $response.items
    }
}