Public/Get-GCQualityForms.ps1

<#
.SYNOPSIS
    Retrieves a list of quality evaluation forms from Genesys Cloud.

.DESCRIPTION
    Queries the Genesys Cloud API to retrieve a paginated list of quality evaluation forms.
    Supports filtering by name and sorting options.
    API Endpoint: GET /api/v2/quality/forms/evaluations

.PARAMETER PageSize
    The number of results per page. Default is 25.

.PARAMETER PageNumber
    The page number to retrieve. Default is 1.

.PARAMETER SortBy
    The field to sort results by.

.PARAMETER Name
    Filter evaluation forms by name. Supports partial matching.

.EXAMPLE
    Get-GCQualityForms
    Retrieves the first page of quality evaluation forms with default page size.

.EXAMPLE
    Get-GCQualityForms -Name 'Customer Service' -PageSize 50
    Retrieves evaluation forms matching the name 'Customer Service'.

.NOTES
    Genesys Cloud API: GET /api/v2/quality/forms/evaluations
#>

function Get-GCQualityForms {
    [CmdletBinding()]
    param(
        [Parameter(Mandatory = $false)]
        [int]$PageSize = 25,

        [Parameter(Mandatory = $false)]
        [int]$PageNumber = 1,

        [Parameter(Mandatory = $false)]
        [string]$SortBy,

        [Parameter(Mandatory = $false)]
        [string]$Name
    )

    $queryParams = @{
        pageSize   = $PageSize
        pageNumber = $PageNumber
    }

    if ($SortBy) { $queryParams['sortBy'] = $SortBy }
    if ($Name) { $queryParams['name'] = $Name }

    $endpoint = "quality/forms/evaluations"
    return Invoke-GCApiRequest -Endpoint $endpoint -Method GET -QueryParameters $queryParams
}