feat: add DNS/FTL log endpoints and group batch-delete - #130
Merged
Merged
Conversation
Adds Get-PiHoleLogDnsmasq and Get-PiHoleLogFtl (GET /logs/dnsmasq, GET /logs/ftl), completing the Logs API area. Reworks Remove-PiHoleGroup to delete multiple groups in a single POST /groups:batchDelete call while still validating every name exists first, since the batch API silently no-ops for names that don't exist. Fixes a latent bug in the batch body construction: a single-name foreach result unwraps to a bare hashtable instead of a one-element array, which ConvertTo-Json then serializes as a JSON object instead of an array - causing the API to reject single-group deletes with 400. Building the body with @() and passing it via ConvertTo-Json -InputObject (instead of piping) fixes both the single- and multi-name cases. Co-Authored-By: Claude Sonnet 5 <[email protected]>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Get-PiHoleLogDnsmasq(GET /logs/dnsmasq) andGet-PiHoleLogFtl(GET /logs/ftl), completing the Logs API areaRemove-PiHoleGroupto delete multiple groups in onePOST /groups:batchDeletecall, with an existence pre-check for every name so it never falsely reports a nonexistent group as deleted (the batch API silently no-ops on missing names)foreachresult unwraps to a bare hashtable instead of a one-element array, soConvertTo-Jsonserialized it as a JSON object instead of an array, causing the API to reject single-group deletes with 400. Building the body with@()and callingConvertTo-Json -InputObject(instead of piping) fixes both the single- and multi-name cases correctlyTest plan
Get-PiHoleLogDnsmasq/Get-PiHoleLogFtlintegration tests pass against a live server (8/8)Remove-PiHoleGroupintegration tests pass against a live server (6/6), including a batch of 3 groups created and deleted together, with no settle-time workarounds needed🤖 Generated with Claude Code