Skip to content

Commit 996252a

Browse files
committed
fix: improve error handling and logging in Invoke-RemoveScheduledItem function
1 parent 5fc8be0 commit 996252a

File tree

1 file changed

+20
-11
lines changed

1 file changed

+20
-11
lines changed

Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Scheduler/Invoke-RemoveScheduledItem.ps1

Lines changed: 20 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -4,32 +4,41 @@ function Invoke-RemoveScheduledItem {
44
Entrypoint,AnyTenant
55
.ROLE
66
CIPP.Scheduler.ReadWrite
7+
.DESCRIPTION
8+
Removes a scheduled item from CIPP's scheduler.
79
#>
810
[CmdletBinding()]
911
param($Request, $TriggerMetadata)
1012

11-
$APIName = 'RemoveScheduledItem'
12-
$User = $Request.Headers
13+
$APIName = $Request.Params.CIPPEndpoint
14+
$Headers = $Request.Headers
1315

1416
$RowKey = $Request.Query.id ? $Request.Query.id : $Request.Body.id
1517
$task = @{
1618
RowKey = $RowKey
1719
PartitionKey = 'ScheduledTask'
1820
}
19-
$Table = Get-CIPPTable -TableName 'ScheduledTasks'
20-
Remove-AzDataTableEntity -Force @Table -Entity $task
21+
try {
22+
$Table = Get-CIPPTable -TableName 'ScheduledTasks'
23+
Remove-AzDataTableEntity -Force @Table -Entity $task
2124

22-
$DetailTable = Get-CIPPTable -TableName 'ScheduledTaskDetails'
23-
$Details = Get-CIPPAzDataTableEntity @DetailTable -Filter "PartitionKey eq '$($RowKey)'" -Property RowKey, PartitionKey, ETag
25+
$DetailTable = Get-CIPPTable -TableName 'ScheduledTaskDetails'
26+
$Details = Get-CIPPAzDataTableEntity @DetailTable -Filter "PartitionKey eq '$($RowKey)'" -Property RowKey, PartitionKey, ETag
2427

25-
if ($Details) {
26-
Remove-AzDataTableEntity -Force @DetailTable -Entity $Details
27-
}
28+
if ($Details) {
29+
Remove-AzDataTableEntity -Force @DetailTable -Entity $Details
30+
}
2831

29-
Write-LogMessage -Headers $User -API $APINAME -message "Task removed: $($task.RowKey)" -Sev 'Info'
32+
Write-LogMessage -Headers $Headers -API $APIName -message "Task removed: $($task.RowKey)" -Sev 'Info'
33+
$StatusCode = [HttpStatusCode]::OK
34+
} catch {
35+
$ErrorMessage = Get-CippException -Exception $_
36+
Write-LogMessage -Headers $Headers -API $APIName -message "Failed to remove task: $($task.RowKey). $($ErrorMessage.NormalizedError)" -Sev 'Error' -LogData $ErrorMessage
37+
$StatusCode = [HttpStatusCode]::BadRequest
38+
}
3039

3140
return ([HttpResponseContext]@{
32-
StatusCode = [HttpStatusCode]::OK
41+
StatusCode = $StatusCode
3342
Body = @{ Results = 'Task removed successfully.' }
3443
})
3544

0 commit comments

Comments
 (0)