Functions/Edit-LSTicket.ps1
|
function Edit-LSTicket { Param ( [Parameter(Mandatory=$true)][String]$Url, [Parameter(Mandatory=$true)][String]$TicketId, # Non-mandatory fields [String]$Subject, [String]$Description, [String]$State, [String]$Type, [String]$Priority, [String]$Team, [String]$Username, [String]$Displayname, [String]$Email, [String]$AgentUsername, [String]$AgentEmail, [String]$Subscribers, [String]$Unsubscribers, [Bool]$FollowUp, [Int]$FollowUpDuration, [DateTime]$FollowupDate, [Bool]$Unassign, [Bool]$Personal ) # Base parameters for url $params = @{ action = 'EditTicket' TicketID = $TicketID } # Add optional parameters if used if($Subject) {$params.Subject = $Subject} if($Description) {$params.Description = $Description} if($State) {$params.State = $State} if($Type) {$params.Type = $Type} if($Priority) {$params.Priority = $Priority} if($Team) {$params.Team = $Team} if($Username) {$params.Username = $Username} if($Displayname) {$params.Displayname = $Displayname} if($Email) {$params.Email = $Email} if($AgentUsername) {$params.AgentUsername = $AgentUsername} if($AgentEmail) {$params.AgentEmail = $AgentEmail} if($Subscribers) {$params.Subscribers = $Subscribers} if($Unsubscribers) {$params.Unsubscribers = $Unsubscribers} if($FollowUp) {$params.FollowUp = $FollowUp} if($FollowUpDuration) {$params.FollowUpDuration = $FollowUpDuration} if($FollowUpDate) {$params.FollowUpDate = $FollowUpDate} if($Unassign) {$params.Unassign = $Unassign} if($Personal) {$params.Personal = $Personal} # Building query string $queryString = ($params.GetEnumerator() | ForEach-Object { '{0}={1}' -f [uri]::EscapeDataString($_.Key), [uri]::EscapeDataString([string]$_.Value) }) -join '&' $fullUrl = '{0}{1}' -f $Url, $queryString # Edit ticket using the api $Request = Invoke-WebRequest -Uri $fullUrl -UseBasicParsing # Checking response if($Request.StatusCode -ne 200) { throw ("{0} {1}" -f $Request.StatusCode, $Request.StatusDescription) } if(($Request.Content | ConvertFrom-Json).Success) { Write-Host "Ticket has been modified successfully!" -ForegroundColor "Green" } else { Write-Host "Something went wrong when editing ticket." -ForegroundColor "Red" Write-Error $Request.Content } return ($Request.Content | ConvertFrom-Json) } |