Skip to content

Create API Endpoint to Retrieve All Donations #9

@mubarak23

Description

@mubarak23

We need to implement a comprehensive API endpoint to retrieve donations data with flexible filtering, sorting, and pagination capabilities. This will support various use cases including donation history, campaign analytics, user dashboards, and administrative reporting.
User Stories

As a campaign creator, I want to view all donations made to my campaigns so I can track fundraising progress and thank supporters
As a donor, I want to see my donation history across all campaigns so I can track my contributions
As an admin, I want to access comprehensive donation data for reporting and analytics purposes
As a public user, I want to see anonymized donation statistics for transparency

API Endpoints

Primary: GET /api/v1/donations - Retrieve all donations (admin only)
Campaign Donations: GET /api/v1/campaigns/{campaign_id}/donations
User Donations: GET /api/v1/users/{user_id}/donations
My Donations: GET /api/v1/users/me/donations

Core Features

Pagination: Support for page-based pagination with configurable page sizes
Sorting: Multiple sort options (date, amount, campaign, donor)
Filtering: Advanced filtering by date range, amount range, status, campaign, donor
Search: Text search across campaign names and descriptions
Aggregation: Summary statistics (total amount, donor count, averages)

Query Parameters Support

Pagination: page, limit, sort_by, sort_order
Date filtering: from_date, to_date
Amount filtering: min_amount, max_amount
Entity filtering: campaign_id, donor_id, donation_token
Status filtering: status, confirmed
Search: search parameter for text matching

Response Data Structure
Each donation should include:

Transaction details (hash, block number, gas fee)
Campaign information (ID, reference, title)
Donor information (ID, address, name - respecting privacy settings)
Amount details (raw amount, USD equivalent, token information)
Status and confirmation data
Timestamps (created, confirmed)
Optional message and anonymity flags

Metadata

Metadata

Assignees

Labels

onlydust-waveContribute to awesome OSS repos during OnlyDust's open source week

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions