Gamification: Admin approval XP award integration #352
Notifications
Total Time Spent: 2 minutes
kincses
2 minutes
No due date set.
Dependencies
No dependencies set.
Reference: kincses/service-finder#352
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Mérföldkő: Epic 7: Marketplace & API
Cél: A provider jóváhagyáskor automatikus Gamification XP award implementálása a beküldő felhasználónak.
🔗 Függőségek (Dependencies)
📝 Elemzés
Jelenleg ha egy admin jóváhagy egy provider rekordot, NINCS automatikus XP award a beküldőnek. A UserContribution rekord létezik (status pending/approved/rejected), de nincs végpont ami triggerelné a GamificationService-t.
Szükséges:
Ez a gamification kör bezárásához kritikus. Az XP csak akkor kerüljön kiosztásra, ha az admin TÉNYLEGESEN jóváhagyta a rekordot.
▶️ Munka megkezdve: 2026-06-30 12:11:45
✅ Munka befejezve: 2026-06-30 12:14:09
Technikai Összefoglaló:
Implementáltuk a Gamification XP award integrációt az admin provider approve végpontban. Módosított fájl: backend/app/api/v1/endpoints/admin_providers.py. Változtatások: (1) POST /admin/providers/{id}/approve most meghívja a gamification_service.process_activity()-t action_key=ADD_NEW_PROVIDER paraméterrel a beküldő user-nek, (2) UserContribution rekord frissítése (status=approved/rejected, reviewed_by, reviewed_at) mind approve és reject esetén, (3) provided_fields JSONB bővítése moderációs döntéssel (action, reason, rejection_reason). Szintaxis és import ellenőrzés: ✅, FastAPI app betöltés: ✅, 7 route regisztrálva.
⏱️ Az idő rögzítve.
✅ #352 Gamification: Admin approval XP award integration — Kész
Implementált változtatások
A
backend/app/api/v1/endpoints/admin_providers.pyfájlban az alábbi módosítások történtek:1.
POST /admin/providers/{id}/approve— Gamification XP awardUserContributionmodell ésgamification_servicesingleton importálvaadded_by_user_id, a jóváhagyáskor meghívódik agamification_service.process_activity()a következő paraméterekkel:user_id= provider beküldőjének ID-jaaction_key="ADD_NEW_PROVIDER"(pontérték apoint_rulestáblából: 500 XP)source_type="provider_approval"source_id= provider IDcommit=False(a külső tranzakció részeként)UserContributionrekordot (entity_type="service_provider",entity_id=provider_id), és:status→"approved"reviewed_by→ admin user IDreviewed_at→ aktuális timestampprovided_fields["moderation"]→ JSONB a moderációs döntéssel (action,reviewed_by,reviewed_at,reason)2.
POST /admin/providers/{id}/reject— UserContribution frissítésstatus→"rejected"provided_fields["moderation"]["action"]→"reject"provided_fields["moderation"]["rejection_reason"]→ az admin által megadott indoklásEllenőrzések
admin_providersmodul betöltése hibátlan