Public/Test-HTTPStatus.ps1

function Test-HTTPStatus {
  <#
    .SYNOPSIS
    Check the HTTP status
 
    .DESCRIPTION
    Check that a specified web-platform is available by querying its HTTP
    status.
 
    .PARAMETER System
    The system parameter corresponds to a collection containing all the information relative to the platform to check.
    It must contain the following properties:
    - ApplicationProtocol: the protocol used by the web-application (HTTP or HTTPS);
    - ApplicationServer: the name/alias of the web-server hosting the web-application;
    - ApplicationPort: the port number used by the web-application.
 
    .OUTPUTS
    [Boolean] This function returns a boolean specifying if the status of the platform is up or down.
 
    .EXAMPLE
    Test-HTTPStatus -URI "http://localhost:80"
 
    In this example, the function will return the status of the localhost server using the protocol HTTP and the port 80.
 
    .NOTES
    File name: Test-HTTPStatus.ps1
    Author: Florian Carrier
    Creation date: 18/10/2019
    Last modified: 18/10/2019
  #>

  [CmdletBinding()]
  Param(
    [Parameter (
      Position    = 1,
      Mandatory   = $true,
      HelpMessage = "Uniform Resource Identifier"
    )]
    [String]
    $URI
  )
  Begin {
    # Get global preference vrariables
    Get-CallerPreference -Cmdlet $PSCmdlet -SessionState $ExecutionContext.SessionState
  }
  Process {
    # Get HTTP status
    $Status = Get-HTTPStatus -URI $URI
    Write-Log -Type "DEBUG" -Message "HTTP status: $Status"

    # Check status means "Success"
    if ($Status -in 200..299) {
      return $true
    } else {
      return $false
    }
  }
}