API SIMEON - Documentation

Simeon est une application conçue pour simplifier l'organisation et le suivi de voyages, qu'ils soient en solo ou en groupe. Grâce à une interface intuitive, l'application offre :

Lien vers le dépôt Github : https://github.com/Mousedlf/simeon-backend


Remarque :
Lorsque 🔒 Auth requis est indiqué, vous devez inclure un Bearer Token dans l'en-tête Authorization de votre requête.

Authentification

POST /register
Créer un compte
Enregistrer un nouveau utilisateur dans le système
{ "username": "test", "email": "test@mail.com", "password": "test" }
POST /api/login_check
Obtenir un token
Se connecter et récupérer un JWT pour les requêtes authentifiées
{ "username": "test", "password": "test" }

Utilisateurs

GET /api/user/profile 🔒 Auth requis
Profil utilisateur
Récupérer les informations du profil de l'utilisateur connecté
GET /api/user/{id}/edit/visibility 🔒 Auth requis
Modifier la visibilité
Changer la visibilité du profil utilisateur
POST /api/user/{id}/edit/username 🔒 Auth requis
Modifier le nom d'utilisateur
Changer le nom d'utilisateur du compte
{ "username": "nouveau_nom" }
GET /api/user/all/public
Utilisateurs publics
Récupérer la liste de tous les utilisateurs publics

Participants

POST /api/trip/{id}/add-people 🔒 Auth requis
Inviter des personnes
Inviter des personnes à rejoindre un voyage
{ "message": "coucou", "people": [ { "userId": 7, "statusId": 2 }, { "userId": 3, "statusId": 1 }, ]}
POST /api/trip/{id}/remove-people 🔒 Auth requis
Retirer des personnes
Retirer des personnes d'un voyage
{ "peopleIds": [6, 5] }
GET /api/invite/all/user/{id} 🔒 Auth requis
Voir les invitations
Récupérer toutes les invitations d'un utilisateur
GET /api/invite/{id}/accept 🔒 Auth requis
Accepter invitation
Accepter une invitation à un voyage
GET /api/invite/{id}/decline 🔒 Auth requis
Refuser invitation
Refuser une invitation à un voyage
POST /api/trip/{id}/change-permissions 🔒 Auth requis
Changer permissions
Modifier les permissions des participants d'un voyage
{ "participants": [ { "userId": 1, "statusId": 3 } ]}
GET /api/invite/{id}/retract 🔒 Auth requis
Annuler invitation
Annuler une invitation envoyée

Dépenses

GET /api/expense/all/trip/{id} 🔒 Auth requis
Toutes les dépenses
Récupérer toutes les dépenses d'un voyage
POST /api/expense/new/trip/{id} 🔒 Auth requis
Ajouter une dépense
Créer une nouvelle dépense pour un voyage
{ "dayOfTrip": null, "amountLocalCurrency": 1.25, "currency": 1, "divide": false, "name": "thé", "paidBy": 4, "divideBetween": [7, 4], "paymentMethod": null, "personal": true, "category": 2 }
GET /api/expense/all/trip/{id}/day/{day} 🔒 Auth requis
Dépenses d'un jour
Récupérer toutes les dépenses communes d'un jour spécifique
GET /api/expense/all/trip/{id}/personal 🔒 Auth requis
Dépenses personnelles
Récupérer toutes les dépenses personnelles d'un voyage
GET /api/expense/all/trip/{id}/day/{day}/with-personal 🔒 Auth requis
Dépenses jour + personnelles
Récupérer toutes les dépenses (communes et personnelles) d'un jour
DELETE /api/expense/{id}/delete 🔒 Auth requis
Supprimer dépense
Supprimer une dépense existante
PUT /api/expense/{id}/edit 🔒 Auth requis
Modifier dépense
Modifier une dépense existante
{ "dayOfTrip": null, "amountLocalCurrency": 1.25, "currency": 1, "divide": false, "name": "thé", "paidBy": 4, "divideBetween": [7, 4], "paymentMethod": null, "personal": true, "category": 2 }
PUT /api/expense/trip/{id}/budget 🔒 Auth requis
Définir budget
Définir le budget personnel pour un voyage
{ "budget": 465 }

Voyages

GET /api/trip/all/{userId} 🔒 Auth requis
Tous les voyages
Récupérer tous les voyages d'un utilisateur
GET /api/trip/{id} 🔒 Auth requis
Un voyage
Récupérer les détails d'un voyage spécifique
POST /api/trip/{id}/image 🔒 Auth requis
Ajouter image
Ajouter une image à un voyage (multipart/form-data)
POST /api/trip/new 🔒 Auth requis
Créer voyage
Créer un nouveau voyage
{ "name": "Mallorca 2.0", "description": "repos, plage et allemands", "startDate": "2025-06-01", "endDate": "2025-06-02", "public": false }
DELETE /api/trip/{id}/delete 🔒 Auth requis
Supprimer voyage
Supprimer un voyage existant
PUT /api/trip/{id}/edit 🔒 Auth requis
Modifier voyage
Modifier les informations textuelles d'un voyage
{ "name": "Francfort", "description": "Séjour à la maison" }
DELETE /api/trip/delete 🔒 Auth requis
Supprimer plusieurs voyages
Supprimer plusieurs voyages en une fois
{ "tripIds": [3, 4] }
PUT /api/trip/{id}/edit-dates 🔒 Auth requis
Modifier dates
Modifier les dates de début et de fin d'un voyage
{ "startDate": "2025-09-10", "endDate": "2025-09-20" }
GET /api/trip/{id}/invitable-people 🔒 Auth requis
Personnes invitables
Récupérer la liste des personnes pouvant être invitées à un voyage

Conversations

GET /api/conversation/{id} 🔒 Auth requis
Une conversation
Afficher une conversation spécifique
GET /api/conversation/all 🔒 Auth requis
Toutes les conversations
Récupérer toutes les conversations d'un utilisateur
POST /api/conversation/{id}/message/new 🔒 Auth requis
Nouveau message
Envoyer un nouveau message dans une conversation
{ "content": "le contenu du message" }
PUT /api/conversation/{id}/message/{messageId}/edit 🔒 Auth requis
Modifier message
Modifier un message existant dans une conversation
{ "content": "contenu modifié" }

Activités

GET /api/trip/{tripId}/day/{day} 🔒 Auth requis
Activités d'un jour
Récupérer les activités d'une journée spécifique
POST /api/activity/new/trip/{tripId}/day/{day} 🔒 Auth requis
Ajouter activité
Ajouter une nouvelle activité à une journée
{ "name": "Tour eiffel", "address": "Av. Gustave Eiffel, 75007 Paris", "category": 20, "longitude": 2.2945006, "latitude": 48.8582599, "note": "classique" }
PUT /api/activity/edit/{id}/trip/{tripId}/day/{day} 🔒 Auth requis
Modifier activité
Modifier une activité existante
{ "name": "Bourse du Commerce", "address": "2 Rue de Viarmes, 75001 Paris", "category": 17, "longitude": 2.3428364, "latitude": 48.8628174, "note": "bols in the water" }
DELETE /api/activity/{id}/trip/{tripId}/delete 🔒 Auth requis
Supprimer activité
Supprimer une activité d'un voyage
POST /api/activity/trip/{tripId}/day/{day}/reorder 🔒 Auth requis
Réorganiser activités
Réorganiser l'ordre des activités d'une journée
{ "order": [2, 1] }

Devises

GET /api/currency/all 🔒 Auth requis
Toutes les devises
Récupérer la liste de toutes les devises disponibles

Catégories

GET /api/category/all/expense 🔒 Auth requis
Catégories de dépenses
Récupérer toutes les catégories disponibles pour les dépenses