Public/Get-GW2MailCarriers.ps1
|
<#
.SYNOPSIS Retrieves information about mail carrier skins. .DESCRIPTION Calls the Guild Wars 2 API v2 /mailcarriers endpoint. - If no parameters are provided, returns a list of all available mail carrier IDs. - If 'Ids' is provided, returns objects containing details for the specified mail carriers. - If 'Ids' is set to 'all', returns details for all mail carriers. .PARAMETER Ids Optional. A list of mail carrier IDs (integers) or the string 'all'. Example: 1, 2 or "all" .PARAMETER Lang Optional. The language to return results in (en, es, de, fr, ko, zh). .EXAMPLE Get-GW2MailCarriers Returns a list of all mail carrier IDs. .EXAMPLE Get-GW2MailCarriers -Ids 1 Returns details for the specified mail carrier. .EXAMPLE Get-GW2MailCarriers -Ids "all" Returns details for all mail carriers. .NOTES - Requires network access to api.guildwars2.com. - This is a public endpoint and does not require an API key. #> function Get-GW2MailCarriers { param ( [Parameter(Mandatory = $false)] [object]$Ids, [Parameter(Mandatory = $false)] [ValidateSet("en", "es", "de", "fr", "ko", "zh")] [string]$Lang ) $url = "https://api.guildwars2.com/v2/mailcarriers" if ($Ids) { if ($Ids -eq "all") { $url = $url + "?ids=all" } else { # Join IDs with commas for the query parameter if ($Ids -is [array]) { $idString = $Ids -join ',' } else { $idString = $Ids } $url = $url + "?ids=$idString" } } if ($Lang) { if ($url.Contains("?")) { $url = $url + "&lang=$Lang" } else { $url = $url + "?lang=$Lang" } } $response = Invoke-RestMethod -Uri $url -Method Get return $response } |