Skip to content

feat: add campaign query history exports and API docs - #746

Merged
Utilitycoder merged 2 commits into
Fundable-Protocol:mainfrom
damiedee96:feat/campaign-api-history-export-docs
Aug 30, 2026
Merged

feat: add campaign query history exports and API docs#746
Utilitycoder merged 2 commits into
Fundable-Protocol:mainfrom
damiedee96:feat/campaign-api-history-export-docs

Conversation

@damiedee96

Copy link
Copy Markdown
Contributor

Summary
Closes #712, #695, #706, and #708.
Implement campaign querying, status-history persistence, CSV exports, and OpenAPI documentation across the backend API.
Before
Campaign data did not have a GraphQL query with flexible filters and sorting. Campaign status transitions after tree verification were not persisted with a queryable history or audit actor. Campaign creators could not download sponsor and impact data as CSV, and the campaign REST endpoints were not documented in the OpenAPI specification.
After
Adds a GraphQL campaigns query with filtering by status, creator, search text, goal amount, and creation date.
Adds configurable sorting by creation date, update date, name, status, amounts, sponsor count, and tree count.
Adds pagination and network selection to campaign queries.
Adds a database migration for status_changed_at, campaign status history, audit attribution, and sponsor records.
Persists campaign state transitions with the previous status, new status, actor, timestamp, and reason.
Adds initial status-history entries when campaigns are created.
Adds GET, POST, and PATCH campaign REST handlers.
Adds CSV exports for sponsor lists and campaign impact reports.
Adds OpenAPI documentation for campaign endpoints, request schemas, response schemas, parameters, and error responses.
Adds focused tests for campaign filtering, sorting, status transitions, audit history, campaign creation, and CSV output.
Verification
Focused verification passed:
Campaign service and GraphQL analytics tests: 37 passed.
OpenAPI YAML validation: passed.
Git whitespace validation: passed.
Strict TypeScript checking reports no errors in the campaign implementation.
The full web test suite and repository-wide TypeScript check still report unrelated pre-existing failures in existing files outside these campaign changes.

Closes #695 , closes #706 , closes #708 , closes #712

@drips-wave

drips-wave Bot commented Aug 28, 2026

Copy link
Copy Markdown

@damiedee96 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

@coderabbitai

coderabbitai Bot commented Aug 28, 2026

Copy link
Copy Markdown
Contributor

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 8628a24f-0d8a-4eb1-b0f6-4a2335a825fe


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@Utilitycoder Utilitycoder left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please fix up the merge conflict and update your PR. Kindly ensure you offramp with Fundable at https://stellar.fundable.finance/offramp

@Utilitycoder Utilitycoder left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please fix up the merge conflict and update your PR. Kindly ensure you offramp with Fundable at https://stellar.fundable.finance/offramp

@Utilitycoder

Copy link
Copy Markdown
Contributor

Thanks for the work. Kindly ensure you offramp with Fundable at https://stellar.fundable.finance/offramp

@Utilitycoder
Utilitycoder merged commit b57ec56 into Fundable-Protocol:main Aug 30, 2026
1 of 3 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

2 participants