Public/Get-FsRequester.ps1
Function Get-FsRequester { <# .SYNOPSIS Gets one or more requesters from FreshService .DESCRIPTION The Get-FsRequester function gets requesters from your FreshService domain .EXAMPLE Get-FsRequester Get all requesters .PARAMETER .INPUTS .OUTPUTS .NOTES .LINK #> [CmdletBinding()] #Enable all the default paramters, including Param( [Parameter(Mandatory=$false, ValueFromPipeline=$true, ValueFromPipelineByPropertyName=$true, Position=0)] [String]$LastName, [Parameter(Mandatory=$false, Position=1)] [String]$Email, [Parameter(Mandatory=$false, Position=2)] [String]$CompanyDomain, [Parameter(Mandatory=$false, Position=2)] [String]$ID ) Begin { Write-Verbose -Message "Starting $($MyInvocation.InvocationName) with $($PsCmdlet.ParameterSetName) parameterset..." Write-Verbose -Message "Parameters are $($PSBoundParameters | Select-Object -Property *)" Connect-FreshServiceAPI $APIEndpoint = "$($APIURL)/requesters" } Process { $Company = Get-FsDepartment -Domain $CompanyDomain $CompanyID = $Company.id if ($LastName -or $Email -or $CompanyDomain) { $APIEndpoint += "?query=`"" if ($LastName) {$APIEndpoint += "last_name:$($LastName) AND "} if ($Email) {$APIEndpoint += "primary_email:'$([uri]::EscapeDataString($Email))' AND "} if ($CompanyDomain) {$APIEndpoint += "department_id:$($CompanyID) AND "} $APIEndpoint = $APIEndpoint -replace "\s.{3}\s$","`"" Write-Verbose "so far after params and regex: $($APIEndpoint)" Get-FreshServiceAPIResult -APIEndpoint $APIEndpoint -PrimaryObject 'requesters' -Paginate $false -Method 'Get' } elseif ($ID) { $APIEndpoint += "/$($ID)" Write-Verbose "so far after params and regex: $($APIEndpoint)" Get-FreshServiceAPIResult -APIEndpoint $APIEndpoint -PrimaryObject 'requester' -Paginate $false -Method 'Get' } else { Get-FreshServiceAPIResult -APIEndpoint $APIEndpoint -PrimaryObject 'requesters' -Paginate $true -Method 'Get' } } End { Write-Verbose -Message "Ending $($MyInvocation.InvocationName)..." } } |