feat: add Domain Management, completing the Domains API area - #120
Merged
Merged
Conversation
Adds Get/New/Update/Remove-PiHoleDomain, covering Pi-hole's newer per-domain allow/deny API (GET/POST/PUT + batch-delete), distinct from the existing Lists functions which manage whole list subscriptions. Single-item DELETE is intentionally skipped in favor of the batch endpoint, matching the precedent already set by Remove-PiHoleList. Update-PiHoleDomain deliberately does not support moving a domain between Type/Kind despite the API documenting it as possible via the same PUT request - live testing against a real server showed this leaves a stale duplicate at the original Type/Kind instead of actually moving it, so that path is left unimplemented rather than shipping broken behavior. Adds a Domain Management category to both tools/Update-ReadmeCommand Reference.ps1 and tools/Update-ExampleOutput.ps1, and regenerates README.md and docs/EXAMPLES.md accordingly. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
1 task done
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-PiHoleDomain,New-PiHoleDomain,Update-PiHoleDomain,Remove-PiHoleDomain, covering Pi-hole's newer per-domain allow/deny API (GET/POST/PUT /domains/...+POST /domains:batchDelete). This is distinct from the existing List Management functions, which manage whole allow/block list subscriptions rather than individual domains.DELETE /domains/{type}/{kind}/{domain}is intentionally skipped in favor of the batch endpoint — same precedent already set byRemove-PiHoleList.Update-PiHoleDomaindeliberately does not implement the API's documented "move a domain to a different Type/Kind via the same PUT" feature: live testing against a real server showed this leaves a stale duplicate at the original Type/Kind rather than actually moving it, so that path is left unimplemented rather than shipping broken behavior. Documented in the function's.DESCRIPTION.tools/Update-ReadmeCommandReference.ps1andtools/Update-ExampleOutput.ps1(previously it would have silently folded into "Configuration & Diagnostics"), and regeneratesREADME.mdanddocs/EXAMPLES.mdaccordingly.This completes the "Domains" area from the API coverage audit (8 of 8 operations addressed: 7 implemented, 1 intentionally skipped).
Test plan
docs/EXAMPLES.md.Invoke-ScriptAnalyzerclean against the new functions.🤖 Generated with Claude Code