feat(ticketing): complete Tickets CUD + deleted tickets + tags + merge + spam#77
Merged
Conversation
…s, tags
Covers the Zendesk Tickets endpoints that were missing write coverage:
delete, destroy_many, update_many (uniform + individual), mark_as_spam
(single + many), merge, list_related, list_deleted, restore (single +
many), permanently_delete (single + many), problems/autocomplete, and
ticket-scoped tags (list/set/add/remove).
HttpClient.delete now accepts an optional json body so DELETE /tags can
send {"tags": [...]}. New domain types: TicketRelated, ProblemMatch.
New command: MergeTicketsCmd. 18 new integration tests (live tenant)
cover every new endpoint with the create-exercise-verify pattern.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
4 tasks
Adds unit coverage for the new ticket endpoints and mappers: - TickestService: update_many, update_many_individually, merge (comment visibility flags), delete/destroy_many, mark_as_spam/mark_many_as_spam, restore/restore_many, permanently_delete/_many, problems_autocomplete, list_tags/set_tags/add_tags/remove_tags, plus the new read-only list methods (list_related, list_deleted, etc.). - TicketApiClient: create/update/create_many path + payload assertions, update_many ids query, update_many_individually id-embedded payload, delete/destroy_many, spam endpoints, restore/permanently_delete, merge (payload shape), list_related, list_deleted, problems_autocomplete, and all four tag helpers (including DELETE with json body). - ticket_mapper: new test_ticket_mapper.py covering to_payload_create (all fields + empty custom_fields), to_payload_update (truthy-field filtering, empty/None skipping), and to_payload_merge (ids-only, with target/source comment visibility flags, iterable source_ids). Coverage on the PR #1 modules goes from 57-70% to 100% across ticket_api_client, tickets_service, ticket_mapper, ticket_cmds, and the Ticket domain model. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
This was referenced Apr 21, 2026
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
First PR in the multi-PR effort to close the Zendesk Ticketing API coverage gap. Adds the missing write operations and related read endpoints on the Tickets resource.
New endpoints on `ticketing.tickets`:
Supporting changes:
Test plan
🤖 Generated with Claude Code