Public/Checklists.ps1
|
<# .SYNOPSIS Create a new ClickUp checklist. .DESCRIPTION Create a new ClickUp checklist. .EXAMPLE PS C:\> New-ClickUpChecklist -TaskID 9hz -Name "Checklist" Create a new checklist on ClickUp task with ID "9hz" with name "Checklist". .EXAMPLE PS C:\> New-ClickUpChecklist -TaskID CustomID -CustomTaskIDs $true -TeamID 123 -Name "Checklist" Create a new checklist on ClickUp task with custom ID "CustomID" with name "Checklist". .INPUTS None. This cmdlet does not accept any input. .OUTPUTS System.Object .NOTES See the link for information. .LINK https://developer.clickup.com/reference/createchecklist #> function New-ClickUpChecklist { [CmdletBinding(DefaultParameterSetName = 'TaskID')] [OutputType([System.Object])] param ( [Parameter(Mandatory = $true, ParameterSetName = 'TaskID')] [Parameter(Mandatory = $true, ParameterSetName = 'CustomTaskIDs')] [string]$TaskID, [Parameter(Mandatory = $true, ParameterSetName = 'TaskID')] [Parameter(Mandatory = $true, ParameterSetName = 'CustomTaskIDs')] [string]$Name, [Parameter(Mandatory = $true, ParameterSetName = 'CustomTaskIDs')] [bool]$CustomTaskIDs, [Parameter(Mandatory = $true, ParameterSetName = 'CustomTaskIDs')] [ulong]$TeamID ) $Body = @{ name = $Name } if ($PSBoundParameters.ContainsKey('CustomTaskIDs')) { $QueryString = @{ custom_task_ids = $CustomTaskIDs team_id = $TeamID } } else { $QueryString = @{} } Write-Verbose "Creating new checklist '$Name' on task '$TaskID'..." try { $Checklist = Invoke-ClickUpAPIPost -Arguments $QueryString -Endpoint "task/$TaskID/checklist" -Body $Body Write-Verbose 'Checklist created successfully.' return $Checklist.checklist } catch { Write-Error "Failed to create checklist. Error: $_" throw } } <# .SYNOPSIS Update a ClickUp checklist. .DESCRIPTION Update a ClickUp checklist. .EXAMPLE PS C:\> Set-ClickUpChecklist -ChecklistID b955c4dc -Name "New checklist name." Update ClickUp checklist with ID "b955c4dc" to new name "New checklist name." .EXAMPLE PS C:\> Set-ClickUpChecklist -ChecklistID b955c4dc -Name "Update Checklist." -Position 3 Update ClickUp checklist with ID "b955c4dc" to new name "Update Checklist." and position 3. .INPUTS None. This cmdlet does not accept any input. .OUTPUTS System.Object .NOTES See the link for information. .LINK https://developer.clickup.com/reference/editchecklist #> function Set-ClickUpChecklist { [CmdletBinding()] [OutputType([System.Object])] param ( [Parameter(Mandatory = $true)] [string]$ChecklistID, [Parameter()] [string]$Name, [Parameter()] [ulong]$Position ) $Body = @{} if ($PSBoundParameters.ContainsKey('Name')) { $Body.Add('name', $Name) } if ($PSBoundParameters.ContainsKey('Position')) { $Body.Add('position', $Position) } Write-Verbose "Updating checklist '$ChecklistID'..." try { $Checklist = Invoke-ClickUpAPIPut -Endpoint "checklist/$ChecklistID" -Body $Body Write-Verbose 'Checklist updated successfully.' return $Checklist.checklist } catch { Write-Error "Failed to update checklist. Error: $_" throw } } <# .SYNOPSIS Delete a ClickUp checklist. .DESCRIPTION Delete a ClickUp checklist. .EXAMPLE PS C:\> Remove-ClickUpChecklist -ChecklistID b955c4dc Remove ClickUp checklist with ID "b955c4dc". .INPUTS None. This cmdlet does not accept any input. .OUTPUTS None. This cmdlet does not return any output. .NOTES See the link for information. .LINK https://developer.clickup.com/reference/deletechecklist #> function Remove-ClickUpChecklist { [CmdletBinding(SupportsShouldProcess, ConfirmImpact = 'High')] [OutputType([System.Object])] param ( [Parameter(Mandatory = $true)] [string]$ChecklistID ) if ($PSCmdlet.ShouldProcess($ChecklistID, 'Delete Checklist')) { Write-Verbose "Deleting checklist '$ChecklistID'..." try { $Null = Invoke-ClickUpAPIDelete -Endpoint "checklist/$ChecklistID" Write-Verbose 'Checklist deleted successfully.' } catch { Write-Error "Failed to delete checklist. Error: $_" throw } } } <# .SYNOPSIS Create a new ClickUp checklist item. .DESCRIPTION Create a new ClickUp checklist item. .EXAMPLE PS C:\> New-ClickUpChecklist -CheckListID b955c4dc -Name "Checklist item" Create a new checklist item on ClickUp Checklist with ID "b955c4dc" with name "Checklist item". .EXAMPLE PS C:\> New-ClickUpChecklist -CheckListID b955c4dc -Name "Checklist item" -Assignee 183 Create a new checklist item on ClickUp Checklist with ID "b955c4dc" with name "Checklist item" and assign it to member with ID "183." .INPUTS None. This cmdlet does not accept any input. .OUTPUTS System.Object .NOTES See the link for information. .LINK https://developer.clickup.com/reference/createchecklistitem #> function New-ClickUpChecklistItem { [CmdletBinding()] [OutputType([System.Object])] param ( [Parameter(Mandatory = $True)] [string]$CheckListID, [Parameter(Mandatory = $True)] [string]$Name, [Parameter()] [ulong]$Assignee ) $Body = @{ name = $Name } if ($PSBoundParameters.ContainsKey('Assignee')) { $Body.Add('assignee', $Assignee) } Write-Verbose "Creating new checklist item '$Name' in checklist '$CheckListID'..." try { $Checklist = Invoke-ClickUpAPIPost -Endpoint "checklist/$CheckListID/checklist_item" -Body $Body Write-Verbose 'Checklist item created successfully.' return $Checklist.checklist } catch { Write-Error "Failed to create checklist item. Error: $_" throw } } <# .SYNOPSIS Update a ClickUp checklist item. .DESCRIPTION Update a ClickUp checklist item. .EXAMPLE PS C:\> Set-ClickUpChecklist -ChecklistID b955c4dc -ChecklistItemId 21e08dc8 -Name "New checklist item name." Update ClickUp checklist item with ID "21e08dc8" under checklist with ID "b955c4dc" to new name "New checklist item name." .EXAMPLE PS C:\> Set-ClickUpChecklist -ChecklistID b955c4dc -ChecklistItemId 21e08dc8 -Name "Update Checklist item." -Assignee 183 Update ClickUp checklist item with ID "21e08dc8" under checklist with ID "b955c4dc" to new name "Update Checklist item." and assign it to member with ID "183." .INPUTS None. This cmdlet does not accept any input. .OUTPUTS System.Object .NOTES See the link for information. .LINK https://developer.clickup.com/reference/editchecklistitem #> function Set-ClickUpChecklistItem { [CmdletBinding()] [OutputType([System.Object])] param ( [Parameter(Mandatory = $true)] [string]$ChecklistID, [Parameter(Mandatory = $true)] [string]$ChecklistItemId, [Parameter()] [string]$Name, [Parameter()] [ulong]$Assignee, [Parameter()] [bool]$Resolved, [Parameter()] [string]$Parent ) $Body = @{} if ($PSBoundParameters.ContainsKey('Name')) { $Body.Add('name', $Name) } if ($PSBoundParameters.ContainsKey('Assignee')) { $Body.Add('assignee', $Assignee) } if ($PSBoundParameters.ContainsKey('Resolved')) { $Body.Add('resolved', $Resolved) } if ($PSBoundParameters.ContainsKey('Parent')) { $Body.Add('parent', $Parent) } Write-Verbose "Updating checklist item '$ChecklistItemId'..." try { $Checklist = Invoke-ClickUpAPIPut -Endpoint "checklist/$ChecklistID/checklist_item/$ChecklistItemId" -Body $Body Write-Verbose 'Checklist item updated successfully.' return $Checklist.checklist } catch { Write-Error "Failed to update checklist item. Error: $_" throw } } <# .SYNOPSIS Delete a ClickUp checklist item. .DESCRIPTION Delete a ClickUp checklist item. .EXAMPLE PS C:\> Remove-ClickUpChecklist -ChecklistID b955c4dc -ChecklistItemId 21e08dc8 Remove ClickUp checklist with ID "b955c4dc". .INPUTS None. This cmdlet does not accept any input. .OUTPUTS None. This cmdlet does not return any output. .NOTES See the link for information. .LINK https://developer.clickup.com/reference/deletechecklistitem #> function Remove-ClickUpCheckListItem { [CmdletBinding(SupportsShouldProcess, ConfirmImpact = 'High')] [OutputType([System.Object])] param ( [Parameter(Mandatory = $true)] [string]$ChecklistID, [Parameter(Mandatory = $true)] [string]$ChecklistItemId ) if ($PSCmdlet.ShouldProcess("$ChecklistID - $ChecklistItemId", 'Delete Checklist Item')) { Write-Verbose "Deleting checklist item '$ChecklistItemId' from checklist '$ChecklistID'..." try { $Null = Invoke-ClickUpAPIDelete -Endpoint "checklist/$ChecklistID/checklist_item/$ChecklistItemId" Write-Verbose 'Checklist item deleted successfully.' } catch { Write-Error "Failed to delete checklist item. Error: $_" throw } } } |