root/Common.ps1
function _RequestUri { [CmdletBinding()] param ( [Parameter(ValueFromPipeline, Position = 0)] [string]$Area, [Parameter(Position = 1)] [string]$Resource, [Parameter(Position = 2)] [int]$Id, [Parameter(Position = 3)] [int]$Page ) Begin { $UrlBuilder = New-Object -TypeName System.Text.StringBuilder $UrlBuilder.Append('https://api.eposnowhq.com/api/V4') |Out-Null } Process { if ($Area) { $UrlBuilder.Append("/$Area") |Out-Null } if ($Resource) { $UrlBuilder.Append("/$Resource") |Out-Null } if ($Id) { $UrlBuilder.Append("/$Id") |Out-Null } if ($Page) { $UrlBuilder.Append("?page=$Page") |Out-Null } $Url = $UrlBuilder.ToString() } End { return $Url } } function _ApiCall { [CmdletBinding()] param ( [Parameter(Mandatory)] [string]$Area, [string]$Resource, [int]$Id, [int]$Page, [string]$Method, [object]$Body, [string]$InFile, [string]$ContentType, [string]$Url ) Begin { } Process { Try { if (!$Url) { $UrlBuildParams = @{} + $PSBoundParameters $Remove = 'Method','Body','ContentType','InFile' foreach ($Item in $Remove) { $UrlBuildParams.Remove($Item) |Out-Null } $Url = _RequestUri @UrlBuildParams } $Params = $PSBoundParameters $Params.Uri = $Url $Params.Headers = @{Authorization = "Basic $env:Access_Token"} $Remove = 'Area','Id','Page','Url','Resource' foreach ($Item in $Remove) { $Params.Remove($Item) |Out-Null } $Reponse = Invoke-RestMethod @Params } Catch { throw $_ } } End { return $Reponse } } |