- Description: Initie l'authentification OAuth avec Google
- Response: Redirige vers Google pour l'authentification, puis renvoie les informations de l'utilisateur connecté
- Format de réponse:
User
- Description: Récupère les informations de l'utilisateur actuellement connecté
- Response: Informations de l'utilisateur ou null si non connecté
- Format de réponse:
User | null
- Description: Déconnecte l'utilisateur actuel
- Response: Statut de succès
- Description: Récupère tous les membres de la famille de l'utilisateur connecté
- Response: Liste des utilisateurs de la famille
- Format de réponse:
User[]
- Description: Récupère toutes les tâches (accessible uniquement aux parents)
- Response: Liste de toutes les tâches
- Format de réponse:
Task[]
- Description: Récupère les tâches assignées à un utilisateur spécifique
- Parameters:
userId- ID de l'utilisateur - Response: Liste des tâches assignées à l'utilisateur
- Format de réponse:
Task[]
- Description: Récupère les tâches pour une date spécifique
- Parameters:
date- Date au format YYYY-MM-DD - Response: Liste des tâches pour cette date
- Format de réponse:
Task[]
- Description: Crée une nouvelle tâche (accessible uniquement aux parents)
- Request Body: Données de la tâche sans ID ni date de création
- Format du corps:
Omit<Task, 'id' | 'createdAt'> - Response: Tâche créée avec ID et date de création
- Format de réponse:
Task
- Description: Met à jour une tâche existante
- Parameters:
taskId- ID de la tâche - Request Body: Données partielles de la tâche à mettre à jour
- Format du corps:
Partial<Task> - Response: Tâche mise à jour
- Format de réponse:
Task
- Description: Marque une tâche comme terminée
- Parameters:
taskId- ID de la tâche - Response: Tâche mise à jour
- Format de réponse:
Task
- Description: Supprime une tâche (accessible uniquement aux parents)
- Parameters:
taskId- ID de la tâche - Response: Statut de succès
- Description: Récupère tous les privilèges (accessible uniquement aux parents)
- Response: Liste de tous les privilèges
- Format de réponse:
Privilege[]
- Description: Récupère les privilèges d'un utilisateur spécifique
- Parameters:
userId- ID de l'utilisateur - Response: Liste des privilèges de l'utilisateur
- Format de réponse:
Privilege[]
- Description: Récupère les privilèges pour une date spécifique
- Parameters:
date- Date au format YYYY-MM-DD - Response: Liste des privilèges pour cette date
- Format de réponse:
Privilege[]
- Description: Crée un nouveau privilège (accessible uniquement aux parents)
- Request Body: Données du privilège sans ID
- Format du corps:
Omit<Privilege, 'id'> - Response: Privilège créé avec ID
- Format de réponse:
Privilege
- Description: Met à jour un privilège existant (accessible uniquement aux parents)
- Parameters:
privilegeId- ID du privilège - Request Body: Données partielles du privilège à mettre à jour
- Format du corps:
Partial<Privilege> - Response: Privilège mis à jour
- Format de réponse:
Privilege
- Description: Supprime un privilège (accessible uniquement aux parents)
- Parameters:
privilegeId- ID du privilège - Response: Statut de succès
- Description: Récupère toutes les infractions aux règles (accessible uniquement aux parents)
- Response: Liste de toutes les infractions
- Format de réponse:
RuleViolation[]
- Description: Récupère les infractions aux règles d'un enfant spécifique
- Parameters:
childId- ID de l'enfant - Response: Liste des infractions de l'enfant
- Format de réponse:
RuleViolation[]
- Description: Récupère les infractions aux règles pour une date spécifique
- Parameters:
date- Date au format YYYY-MM-DD - Response: Liste des infractions pour cette date
- Format de réponse:
RuleViolation[]
- Description: Crée une nouvelle infraction (accessible uniquement aux parents)
- Request Body: Données de l'infraction sans ID
- Format du corps:
Omit<RuleViolation, 'id'> - Response: Infraction créée avec ID
- Format de réponse:
RuleViolation
- Description: Supprime une infraction (accessible uniquement aux parents)
- Parameters:
violationId- ID de l'infraction - Response: Statut de succès
- Description: Récupère tous les contrats (accessible uniquement aux parents)
- Response: Liste de tous les contrats
- Format de réponse:
Contract[]
- Description: Récupère un contrat spécifique
- Parameters:
contractId- ID du contrat - Response: Détails du contrat
- Format de réponse:
Contract
- Description: Récupère les contrats d'un enfant spécifique
- Parameters:
childId- ID de l'enfant - Response: Liste des contrats de l'enfant
- Format de réponse:
Contract[]
- Description: Crée un nouveau contrat (accessible uniquement aux parents)
- Request Body: Données du contrat sans ID
- Format du corps:
Omit<Contract, 'id'> - Response: Contrat créé avec ID
- Format de réponse:
Contract
- Description: Met à jour un contrat existant (accessible uniquement aux parents)
- Parameters:
contractId- ID du contrat - Request Body: Données partielles du contrat à mettre à jour
- Format du corps:
Partial<Contract> - Response: Contrat mis à jour
- Format de réponse:
Contract
- Description: Désactive un contrat (accessible uniquement aux parents)
- Parameters:
contractId- ID du contrat - Response: Contrat mis à jour
- Format de réponse:
Contract
- Description: Récupère le portefeuille d'un enfant
- Parameters:
childId- ID de l'enfant - Response: Détails du portefeuille
- Format de réponse:
Wallet
- Description: Récupère les transactions du portefeuille d'un enfant
- Parameters:
childId- ID de l'enfant - Response: Liste des transactions
- Format de réponse:
WalletTransaction[]
- Description: Convertit des euros virtuels en euros réels (accessible uniquement aux parents)
- Parameters:
childId- ID de l'enfant - Request Body: Montant à convertir
- Format du corps:
{ amount: number } - Response: Portefeuille mis à jour
- Format de réponse:
Wallet
The backend implements automatic processing that runs daily at midnight to:
-
Check for each active contract if all conditions are met:
- All tasks assigned to the child for the day are marked as completed
- No rule violations related to the contract have been recorded for the day
-
If all conditions are met, automatically add the daily reward amount to the child's wallet
-
Create a transaction in the wallet history with the reason "Daily Reward" and a reference to the contract
The API implements the following security measures:
- Authentication via OAuth with Google
- Role verification (parent/child) for restricted operations
- Input data validation
- CSRF protection
- Rate limiting to prevent abuse