Private/TestDownloadAvailable.ps1

function TestDownloadAvailable {
    [CmdletBinding()]
    param (
        [Parameter(Mandatory)]
        [string]
        $Uri
    )

    $webRequestParams = GetWebRequestSplatBase -Uri $Uri
    $webRequestParams["Method"] = "HEAD"

    try {
        [void](Invoke-WebRequest @webRequestParams -ErrorAction "Stop")
    } catch {
        $requestException = $_.Exception

        if ($null -eq $requestException) {
            $requestException = $_.InnerException
        }

        if ($null -ne $requestException -and $null -ne $requestException.Response) {
            return $false, "Received erroneous status code $( $requestException.Response ) with error: $_"
        }

        return $false, "Error: $_"
    }

    return $true, $null
}

# Copyright (c) 2023 AJ Tek Corporation. All Rights Reserved.