Skip to content

Server-side Filters v2 (#123) - #148

Merged
milmazz merged 1 commit into
mainfrom
feature/filters-v2
Jul 16, 2026
Merged

Server-side Filters v2 (#123)#148
milmazz merged 1 commit into
mainfrom
feature/filters-v2

Conversation

@milmazz

@milmazz milmazz commented Jul 16, 2026

Copy link
Copy Markdown
Owner

Closes #123

Adds the full v2 Filters API (introduced in Mastodon 4.0) to the Hunter facade — all fifteen endpoints from the issue checklist. Hunter never shipped the deprecated v1 client-side filters, so this goes straight to v2.

Filter groups

  • filters/1GET /api/v2/filters
  • filter/2GET /api/v2/filters/:id
  • create_filter/4POST /api/v2/filters (title + context required; options: filter_action including blur, expires_in, keywords_attributes)
  • update_filter/3PUT /api/v2/filters/:id
  • destroy_filter/2DELETE /api/v2/filters/:id

Keywords

  • filter_keywords/2GET /api/v2/filters/:filter_id/keywords
  • add_keyword_to_filter/4POST /api/v2/filters/:filter_id/keywords
  • filter_keyword/2GET /api/v2/filters/keywords/:id
  • update_filter_keyword/3PUT /api/v2/filters/keywords/:id
  • destroy_filter_keyword/2DELETE /api/v2/filters/keywords/:id

Status filters

  • filter_statuses/2GET /api/v2/filters/:filter_id/statuses
  • add_status_to_filter/3POST /api/v2/filters/:filter_id/statuses
  • filter_status/2GET /api/v2/filters/statuses/:id
  • destroy_filter_status/2DELETE /api/v2/filters/statuses/:id

Built on the Filter/FilterKeyword/FilterStatus entities and transformer targets that landed with #119 — no entity or transformer changes needed.

Tests

15 new tests in test/hunter/filter_test.exs (one per endpoint, plus an error case) with two new fixtures, following the list_test.exs house style. Full suite: 247 tests, 0 failures; --warnings-as-errors, credo --strict, dialyzer, and format checks all clean.

🤖 Generated with Claude Code

Add all fifteen v2 filter endpoints to the Hunter facade:

- Filter groups: filters/1, filter/2, create_filter/4, update_filter/3,
  destroy_filter/2
- Keywords: filter_keywords/2, add_keyword_to_filter/4, filter_keyword/2,
  update_filter_keyword/3, destroy_filter_keyword/2
- Status filters: filter_statuses/2, add_status_to_filter/3,
  filter_status/2, destroy_filter_status/2

Built on the Filter/FilterKeyword/FilterStatus entities and transformer
targets that landed with #119.

Co-Authored-By: Claude Fable 5 <[email protected]>
@milmazz
milmazz merged commit a91be8a into main Jul 16, 2026
5 checks passed
@milmazz
milmazz deleted the feature/filters-v2 branch July 16, 2026 05:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add server-side Filters (v2) support

1 participant