POST /website/add-media
Créer un nouveau média.
Cette route nécessite de mettre votre clé API dans le Header.
👥 Autorisation
Les personnes autorisées pour utiliser cette requête sont :
- Corail
- Zelta
- Site
🧾 Paramètres
Les champs suivants sont attendus dans le corps de la requête :
| Nom | Type | Dans | Requis | Description | Valeur par default |
|---|---|---|---|---|---|
playerId | number | Body | ✅ | L'id du joueur | ❌ |
url | string | Body | ✅ | L'url du post | ❌ |
platform | string | Body | ✅ | La platform du post | ❌ |
submittedAt | string | Body | ❌ | L'heure de création de ce média | currentTimeStamp |
isValid | string | Body | ❌ | Si le lien est valide | ❌ |
title | string | Body | ❌ | Le titre du post | ❌ |
view | number | Body | ❌ | Le nombre de vue | ❌ |
xpGranted | number | Body | ❌ | L'xp gagné grace a ce lien | ❌ |
lastUpdateAt | string | Body | ❌ | La date de la dernière mise à jour | currentTimeStamp |
rewardGranted | bool | Body | ❌ | Si le joueur à déjà reçue une récompense | ❌ |
🧾 Réponse
Les données que l'API retournera avec le succès de la requête :
| Nom | Type | Nullable | Description |
|---|---|---|---|
id | number | ❌ | L'id du media |
playerId | number | ❌ | L'id du joueur |
url | string | ❌ | L'url du post |
platform | string | ❌ | La platform du post |
submittedAt | string | ❌ | L'heure de création de ce média |
isValid | string | ✅ | Si le lien est valide |
title | string | ✅ | Le titre du post |
view | number | ✅ | Le nombre de vue |
xpGranted | number | ✅ | L'xp gagné grace a ce lien |
lastUpdateAt | string | ❌ | La date de la dernière mise à jour |
rewardGranted | bool | ✅ | Si le joueur à déjà reçue une récompense |
📤 Exemple de requête
http://0.0.0.0/api/website/add-media
Et dans le body mettre par exemple :
{
"playerId" : 1,
"url" : "https://www.youtube.com/watch?v=GBIIQ0kP15E",
"platform" : "YouTube",
"submittedAt" : "2025-10-10T13:25:18Z",
"isValid" : "En Attente",
"title" : "RickRoll",
"view" : 0,
"xpGranted" : 0,
"lastUpdateAt" : "2025-10-10T13:25:18Z",
"rewardGranted" : false
}
📥 Exemple de réponse
Si le média est bien créé (code 201) :
{
"id" : 1,
"playerId" : 1,
"url" : "https://www.youtube.com/watch?v=GBIIQ0kP15E",
"platform" : "YouTube",
"submittedAt" : "2025-10-10T13:25:18Z",
"isValid" : "Validé",
"title" : "RickRoll",
"view" : 0,
"xpGranted" : 0,
"lastUpdateAt" : "2025-10-10T13:25:18Z",
"rewardGranted" : false
}
⛔ Les erreurs
Les différents types d'erreurs :
| Code HTTP | Description | Cause possible |
|---|---|---|
| 400 | Bad Request | Paramètres manquants ou invalides |
| 401 | Unauthorized | Clé API manquante ou invalide |
| 403 | Forbidden | Droits insuffisants pour utiliser la requête |
| 409 | Conflict | Conflit avec des données existantes |
| 500 | Internal Server Error | Erreur interne du serveur |
En cas d'erreur 500, contactez directement Zeltaria avec votre requête, sa réponse ainsi que toutes informations que vous jugez pertinentes !
En cas d'erreur voici les informations que retourne l'API
| Nom | Type | Description |
|---|---|---|
code | number | Le code d'erreur que retourne la requête |
message | string | Le message de l'API expliquant l'erreur |
Exemple avec l'erreur 409 Conflict :
Ici par exemple, l'erreur 409 signifie que la base de donnée a rencontré une erreur lors de l'ajout du nouveau média. Dans notre cas, l'url est déjà enregistrée.
{
"message": "could not execute statement [(conn=10142421) Duplicate entry 'https://www.youtube.com/watch?v=GBIIQ0kP15E' for key 'website_media_submissions_url_uindex'] [insert into website_media_submissions (is_valid,last_update_at,platform,player_id,reward_granted,submitted_at,title,url,view,xp_granted) values (?,?,?,?,?,?,?,?,?,?) returning id]; SQL [insert into website_media_submissions (is_valid,last_update_at,platform,player_id,reward_granted,submitted_at,title,url,view,xp_granted) values (?,?,?,?,?,?,?,?,?,?) returning id]; constraint [website_media_submissions_url_uindex]",
"code": 409
}