Skip to content

DonationsRepository: admin-focused queries and helpers #7

@thaninbew

Description

@thaninbew

Summary:

Provide a dedicated repository wrapper for admin use-cases --- paginated lists, filters, aggregate queries, and dedicated search patterns. This makes complex SQL/TypeORM queries testable and keeps service small.

Files to create:

  • apps/backend/src/donations/donations.repository.ts (new)

Suggested repository methods (at least these 5):

  • findPaginated(page: number, perPage: number, filters?: Record<string, any>): Promise<{ rows: Donation[]; total: number }>
  • searchByDonorNameOrEmail(q: string, limit?: number): Promise<Donation[]>
  • getTotalsByDateRange(start: Date, end: Date): Promise<{ total: number; count: number }>
  • findRecentPublic(limit: number): Promise<PublicDonationDto[]>
  • deleteById(id: number): Promise<void> (admin-only destructive operation)

Acceptance criteria:

Testing steps:

  1. Unit test repository methods with a local test database or with a mocked TypeORM QueryBuilder.

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions