Skip to content

feat: implement advanced search & filtering#433

Merged
devEunicee merged 1 commit into
devEunicee:mainfrom
devSoniia:feature/275-advanced-search-filtering
Jun 26, 2026
Merged

feat: implement advanced search & filtering#433
devEunicee merged 1 commit into
devEunicee:mainfrom
devSoniia:feature/275-advanced-search-filtering

Conversation

@devSoniia

Copy link
Copy Markdown
Contributor

Summary

Implements comprehensive search and filtering for payments, merchants, and refunds with cursor-based pagination and multi-field sorting.

Changes

  • services/search/types.rs — query/result types for all three domains
  • services/search/service.rs — SearchService with filter + sort + paginate logic + 8 tests
  • services/search/mod.rs — module exports

Acceptance Criteria

Criterion Status
Text search on merchant names
Date range filtering
Status filtering (multiple values)
Amount range filtering
Merchant / payer filtering
Sort by multiple fields
Cursor-based pagination (max 100/page)
Filter combinations (AND logic)

Closes #275

- PaymentSearchQuery: filter by merchant, payer, token, amount range,
  date range, multiple statuses; sort by date/amount/merchant/payer
- MerchantSearchQuery: text search on name, category, active, whitelisted
- RefundSearchQuery: filter by order_id, initiator, statuses, amount/date range
- Cursor-based pagination with configurable limit (max 100)
- Repository traits (PaymentIndex, MerchantIndex, RefundIndex) decouple
  service from DB implementation
- 8 unit tests covering filters, multi-sort, and pagination
@drips-wave

drips-wave Bot commented Jun 26, 2026

Copy link
Copy Markdown

@devSoniia Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits.

You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀

Learn more about application limits

@devEunicee devEunicee merged commit a59d273 into devEunicee:main Jun 26, 2026
4 of 9 checks passed
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.

#275 - Implement Advanced Search & Filtering

2 participants