Public/Curanet/Get-CuranetCustomerSubscriptions.ps1

function Get-CuranetCustomerSubscriptions() {
    Param(
        [Parameter()]
        [string]$CustomerId,
        [Parameter(Mandatory)]
        [ValidateSet("3370", "3850")]
        [string]$Account
    )

    if( ($null -eq (Get-Variable -Name "$($Account)AccessTokenExpire" -Scope Global -ValueOnly -ErrorAction SilentlyContinue)) -or ((Get-Date) -gt (Get-Variable -Name "$($Account)AccessTokenExpire" -Scope Global -ValueOnly -ErrorAction SilentlyContinue)) ) {
        Get-CuranetAccessToken -Account $Account
    }

    $AccessToken = (Get-Variable -Name "$($Account)AccessToken" -Scope Global -ValueOnly -ErrorAction SilentlyContinue).access_token

    $AuthorizationHeader = @{
        Authorization="Bearer $AccessToken"
    }
    if($CustomerId) {
        try {
            $Subscriptions = (Invoke-WebRequest -Uri "https://api.curanet.dk/customers/v1/Customers/$($CustomerId)/Subscriptions" -Headers $AuthorizationHeader -UseBasicParsing -Method GET).Content | ConvertFrom-Json
        } catch {
            throw "Failed to retreive subscriptions from Curanet $($Account) API: $_"
        }
    } else {
        try {
            $Subscriptions = (Invoke-WebRequest -Uri "https://api.curanet.dk/customers/v1/Customers/Subscriptions" -Headers $AuthorizationHeader -UseBasicParsing -Method GET).Content | ConvertFrom-Json
        } catch {
            throw "Failed to retreive subscriptions from Curanet $($Account) API: $_"
        }
    }


    return $Subscriptions
}