forked from Code-4-Community/scaffolding
-
Notifications
You must be signed in to change notification settings - Fork 0
Closed
Description
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:
- Methods implemented using TypeORM QueryBuilder or repository methods and unit-tested (mock DB or run against a test DB).
- Service file DonationsService (business logic and tests) (Part 2) #9 will use this repository for admin endpoints or complex queries.
Testing steps:
- Unit test repository methods with a local test database or with a mocked TypeORM QueryBuilder.
Metadata
Metadata
Assignees
Labels
No labels