CCRestMethod.ps1


#
# Citrix API Rest Call (Support Export/Prepare/GetJob)
#


Function BuildUrl([string]$serviceRoute, [bool]$test=$true) {
    if ($test) {
        $baseUrl = "https://api.test.layering.cloudburrito.com/"
    }
    else {
        $baseUrl = "https://api.us.layering.cloud.com/"
    }

    $url = [System.UriBuilder]$baseUrl
    $url.Path = $serviceRoute
    return $url.Uri
}


Function Invoke-CCRestMethod([string]$method, [string]$serviceRoute, [string]$customerId) {
    $url = BuildUrl -serviceRoute $serviceRoute
    $moduleInfo = Get-InstalledModule 'Citrix.Image.Uploader'
    $parameters = @{
        Headers = @{`
            'Citrix-CustomerId' = $customerId
            'Accept'            = 'application/json'
            'Content-Type'      = 'application/json;charset=utf-8'
        }
        Method = $method
        UserAgent = "Citrix.Image.Uploader/$($moduleInfo.Version) Powershell/$($PSVersionTable.PSVersion)"
        Verbose = $Global:LogVerbose
    }
    try {
        Log "REST $url" $false
        return Invoke-RestMethod $url @parameters
    }
    catch {
        throw "$method REST method failed: $_"
    }
}