Private/Send-UnityRequest.ps1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
function Send-UnityRequest {
  [CmdletBinding()]
  Param (
      [parameter(Mandatory = $true, HelpMessage = "Request URI")]
      [string]$URI,
      [Parameter(Mandatory = $true,HelpMessage = 'EMC Unity Session')]
      $session = ($global:DefaultUnitySession | where-object {$_.IsConnected -eq $true}),
      [parameter(Mandatory = $true, HelpMessage = "Enter request type (GET POST DELETE)")]
      [string]$Method,
      [parameter(Mandatory = $false, HelpMessage = "Body of the message")]
      [array]$body
  )

  Write-Debug -Message "[$($MyInvocation.MyCommand)] Executing function"

  # Request
  If (($Method -eq 'GET') -or ($type -eq 'DELETE')) {
    Try
    {
      $data = Invoke-WebRequest -Uri $URI -ContentType "application/json" -Websession $Session.Websession -Headers $session.headers -Method $Method
      return $data
    }
    Catch
    {
      Show-RequestException -Exception $_
      throw
    }
  }
  If (($Method -eq 'POST') -or ($type -eq 'PUT')) {
    Try
    {
      $json = $body | ConvertTo-Json -Depth 10
      $data = Invoke-WebRequest -Uri $URI -ContentType "application/json" -Body $json -Websession $Session.Websession -Headers $session.headers -Method $Method -TimeoutSec 600
      return $data
    }
    Catch
    {
      Show-RequestException -Exception $_
      throw
    }
  }
  If ($Method -eq 'DELETE') {
    Try
    {
      If ($body) {
        $json = $body | ConvertTo-Json -Depth 10
        $data = Invoke-WebRequest -Uri $URI -ContentType "application/json" -Body $json -Websession $Session.Websession -Headers $session.headers -Method $Method
      } else {
        $data = Invoke-WebRequest -Uri $URI -ContentType "application/json" -Websession $Session.Websession -Headers $session.headers -Method $Method
      }
      return $data
    }
    Catch
    {
      Show-RequestException -Exception $_
      throw
    }
  }
}