Profil utilisateur
Endpoints de gestion du profil : avatar, informations personnelles et code de parrainage.
Authentification requise
Tous les endpoints de cette section nécessitent Authorization: Bearer {token}.
POST /api/user/profile/avatar
Met à jour la photo de profil de l'utilisateur.
Format de la requête : multipart/form-data
Paramètres
| Champ | Type | Obligatoire | Description |
|---|---|---|---|
avatar | file | Oui | Image (jpeg, png, gif…) — max 2 Mo |
Réponses
200 :
{
"user": { "id": 1, "avatar": "/storage/avatars/user/1/photo.jpg" },
"message": "Avatar mis à jour avec succès.",
"data": {
"avatar_url": "/storage/avatars/user/1/photo.jpg"
},
"errors": []
}
422 — Fichier invalide :
{
"user": null,
"message": "Données invalides.",
"errors": {
"avatar": ["The avatar field must be an image."]
}
}
POST /api/user/profile/update
Met à jour le nom et/ou le nom d'utilisateur. Les deux champs sont optionnels.
Paramètres (body JSON)
| Champ | Type | Obligatoire | Description |
|---|---|---|---|
name | string | Non | Nom affiché (nullable) |
username | string | Non | Nom d'utilisateur (nullable) |
Exemple
{
"name": "Ibrahima Diallo",
"username": "ibra225"
}
Réponse 200
{
"user": { "id": 1, "name": "Ibrahima Diallo", "username": "ibra225" },
"message": "Profil mis à jour avec succès.",
"data": [],
"errors": []
}
POST /api/user/profile/apply-affiliation
Applique un code de parrainage sur le compte. Action unique et irréversible. Crédite automatiquement le bonus de bienvenue.
Paramètres (body JSON)
| Champ | Type | Obligatoire | Description |
|---|---|---|---|
code | string | Oui | Code de parrainage |
Exemple
{
"code": "XKQT472"
}
Réponses
200 — Code appliqué :
{
"user": { "id": 1, "credits_balance": 15 },
"message": "Code appliqué avec succès ! Vos crédits ont été crédités.",
"data": {
"credits_added": 10,
"credits_balance": 15
},
"errors": []
}
400 — Code déjà appliqué :
{
"user": {},
"message": "Un code a déjà été appliqué sur ce compte.",
"data": [],
"errors": []
}
400 — Propre code utilisé :
{
"user": {},
"message": "Vous ne pouvez pas utiliser votre propre code.",
"data": [],
"errors": []
}
404 — Code inexistant :
{
"user": {},
"message": "Code coupon invalide.",
"data": [],
"errors": []
}