Public/Create-Task.ps1
function Create-Task { param( [string]$Url, [string]$ChannelId = "19:e2599066fc7f4faaada1ffa4632adf52@thread.skype", [string]$EntityId = "eTask.ea217f5c-2e1f-4406-671b-194321dfb776", [string]$GroupId = "7243322b-db76-422e-a964-ae2bef25eee0", [string]$TeamId = "19:ca7641c904da4fdf92820722ff6489fc@thread.skype", [string]$Domain = "teams-stag.appvity.com", $BodyObject, [string]$Title, [string]$AssignedTo, [string]$Attachments, [string]$Body, [string]$Bucket, [string]$Complete, [string]$CompletedDate, [string]$DueDate, [string]$Effort, [string]$Name, [string]$Owner, [string]$Phase, [string]$Priority, [string]$RelatedItems, [string]$StartDate, [string]$Status, [string]$Source, [string]$Cookie ) if(!$Url){ Write-Host "Url not found." -F red return } if($BodyObject) { $object = $BodyObject | ConvertFrom-Json if($object.Title) {$Title = $object.Title} if($object.AssignedTo) {$AssignedTo = $object.AssignedTo} if($object.Attachments) {$Attachments = $object.Attachments} if($object.Body) {$Body = $object.Body} if($object.Bucket) {$Bucket = $object.Bucket} if($object.Complete) {$Complete = $object.Complete} if($object.CompletedDate) {$CompletedDate = $object.CompletedDate} if($object.DueDate) {$DueDate = $object.DueDate} if($object.Effort) {$Effort = $object.Effort} if($object.Name) {$Name = $object.Name} if($object.Owner) {$Owner = $object.Owner} if($object.Phase) {$Phase = $object.Phase} if($object.Priority) {$Priority = $object.Priority} if($object.RelatedItems) {$RelatedItems = $object.RelatedItems} if($object.StartDate) {$StartDate = $object.StartDate} if($object.Status) {$Status = $object.Status} if($object.Source) {$Source = $object.Source} } #validation if(!$Title) { Write-Host "Title not found." -F red return } if(!$Source) { Write-Host "Source not found." -F red return } if(!$Priority) { Write-Host "Priority not found." -F red return } if(!$Status) { Write-Host "Status not found." -F red return } $Arr = @{ name = $Title status = $Status body = $Body source = $Source priority = $Priority startDate = $StartDate dueDate = $DueDate attachments = @() bucket = '' bucketName = '' complete = '0' completedDate = '' effort = '' owner = '' phase = '' phaseName = '' projectId = '5d15bd83d9570032862cafe6' relatedItems = @() assignedTo = @() } | ConvertTo-Json #header $hd = New-Object 'System.Collections.Generic.Dictionary[String,String]' $hd.Add("x-appvity-channelId",$ChannelId) $hd.Add("x-appvity-entityId",$EntityId) $hd.Add("x-appvity-groupId",$GroupId) $hd.Add("x-appvity-teamid",$TeamId) $hd.Add("Content-Type","application/json") #cookie $cookie = $Cookie if(!$cookie){ $cookie = Get-GraphOauthCookie #Write-Host '-------------cookie------------------' #Write-Host $cookie } #session $session = New-Object Microsoft.PowerShell.Commands.WebRequestSession $ck = New-Object System.Net.Cookie $ck.Name = "graphNodeCookie" $ck.Value = $cookie $ck.Path = "/" $ck.Domain = $Domain $session.Cookies.Add($ck); $Url = $Url.TrimEnd('/') + '/odata/tasks' $Params = @{ Uri = $Url Method = 'POST' Headers = $hd Body = $Arr } try { Invoke-WebRequest @Params -WebSession $session } catch{ Write-Error $_.Exception.Message } } |