Public/Status/Set-MMUserStatus.ps1
|
# Sets a user's status in MatterMost function Set-MMUserStatus { <# .SYNOPSIS Sets a MatterMost user's status to online, away, dnd, or offline. .EXAMPLE Set-MMUserStatus -UserId 'abc123' -Status 'dnd' .EXAMPLE Set-MMUserStatus -UserId 'abc123' -Status 'dnd' -DndEndTime (Get-Date).AddHours(2) .EXAMPLE Get-MMUser -Username 'john' | Set-MMUserStatus -Status 'away' #> [CmdletBinding()] [OutputType('MMUserStatus')] param( [Parameter(Mandatory, ValueFromPipelineByPropertyName)] [Alias('id', 'user_id')] [string]$UserId, [Parameter(Mandatory)] [ValidateSet('online', 'away', 'dnd', 'offline')] [string]$Status, # Only applies when Status is 'dnd'. Time at which DND will be automatically lifted. [Parameter()] [DateTime]$DndEndTime ) process { $body = @{ user_id = $UserId status = $Status } if ($PSBoundParameters.ContainsKey('DndEndTime')) { $body['dnd_end_time'] = [long]($DndEndTime - [DateTime]'1970-01-01').TotalSeconds } Invoke-MMRequest -Endpoint "users/$UserId/status" -Method PUT -Body $body | ConvertTo-MMUserStatus } } |