Aller au contenu principal

Réservations

Les réservations sont liées à une conversation et permettent de formaliser une activité entre deux membres.

POST /reservations

Auth requis

Crée une réservation dans une conversation.

Validations

  • date et end_date doivent être dans le futur
  • end_date doit être postérieure à date
  • price doit être > 0
  • L'utilisateur doit être participant de la conversation

Request

POST /reservations
Authorization: Bearer <token>
Content-Type: application/json
{
"title": "Randonnée Fontainebleau",
"conversation_id": 5,
"price": 45.00,
"date": "2025-04-10T09:00:00.000Z",
"end_date": "2025-04-10T17:00:00.000Z"
}
ChampTypeRequisDescription
titlestringOuiTitre de l'activité
conversation_idnumberOuiID de la conversation
pricenumberOuiTarif (décimal, ex: 45.00)
dateISO 8601OuiDate de début
end_dateISO 8601OuiDate de fin

Response

201 Created

{
"id": 3,
"title": "Randonnée Fontainebleau",
"conversation_id": 5,
"creator_id": 42,
"price": "45.00",
"date": "2025-04-10T09:00:00.000Z",
"end_date": "2025-04-10T17:00:00.000Z",
"status": "pending"
}

GET /reservations/me

Auth requis

Retourne toutes les réservations dans les conversations de l'utilisateur.

Request

GET /reservations/me
Authorization: Bearer <token>

Response

200 OK

[
{
"id": 3,
"title": "Randonnée Fontainebleau",
"price": "45.00",
"date": "2025-04-10T09:00:00.000Z",
"end_date": "2025-04-10T17:00:00.000Z",
"status": "accepted",
"creator_id": 42,
"conversation_id": 5
}
]

PATCH /reservations/:id/accept

Auth requis

Accepte une réservation. Seul le destinataire (non-créateur) de la conversation peut accepter.

Request

PATCH /reservations/3/accept
Authorization: Bearer <token>

Response

200 OK

{
"id": 3,
"status": "accepted"
}

403 Forbidden — Tentative d'accepter sa propre réservation


PATCH /reservations/:id/decline

Auth requis

Refuse une réservation.

Request

PATCH /reservations/3/decline
Authorization: Bearer <token>

Response

200 OK

{
"id": 3,
"status": "declined"
}