Feature/issue 22 admin approval#110
Merged
amina69 merged 2 commits intoJun 2, 2026
Merged
Conversation
…na69#22) - Add PATCH /adoption/:id/approve endpoint (admin only) - Add PATCH /adoption/:id/reject endpoint (admin only) - Create RejectAdoptionDto with optional rejection reason - Implement approveAdoption() service method with state validation - Implement rejectAdoption() service method with state validation - Both methods use Prisma transactions for data consistency - Both methods validate state transitions via AdoptionStateMachine - Both methods log events and send notifications (best-effort) - Add comprehensive unit tests for both endpoints - Add Swagger documentation for all endpoints - No schema changes (as requested) - Rejection reason stored in notes field with [REJECTED] prefix Acceptance Criteria: ✅ Admin-only endpoints for approve/reject ✅ Only PENDING adoptions can be approved/rejected ✅ Approval updates status to APPROVED and fires event ✅ Rejection updates status to REJECTED ✅ Optional rejection reason support ✅ Returns 404 if adoption not found ✅ Returns 422 for invalid state transitions ✅ Returns 403 for non-admin users ✅ Comprehensive test coverage
|
@Cjay-Cyber-2 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! 🚀 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
PR: Pet Status Lifecycle Implementation (Closes #22)
Overview
This PR implements the Pet Status Lifecycle feature, enforcing a state machine for pet status transitions throughout the adoption and custody process. It ensures that pets can only move between valid states, maintaining data integrity and preventing invalid transitions.
Features
PATCH /pets/:id/status: Update pet status with validation and audit logging.GET /pets/:id/transitions: Get allowed transitions and current status for a pet.GET /pets/:id/transitions/allowed: Get allowed transitions for the current user (role-aware).Acceptance Criteria
Closes
Please review the implementation and test the endpoints via Swagger UI (
/api/docs).