AlfyChat
Langage :
Référence REST/Amis & Appels

Amis & Appels

Gestion des amis, des demandes, du blocage et de l'historique des appels.

Amis — /api/friends

GET
/api/friends

Liste des amis de l'utilisateur connecté

GET
/api/friends/requests

Demandes d'ami → { received: [], sent: [] }

GET
/api/friends/blocked

Liste des utilisateurs bloqués

POST
/api/friends/request

Envoyer une demande — body: { toUserId, message? } ⚡ émet WS FRIEND_REQUEST au destinataire

POST
/api/friends/requests/:id/accept

Accepter ⚡ émet WS FRIEND_ACCEPT aux deux utilisateurs

POST
/api/friends/requests/:id/decline

Refuser une demande

DELETE
/api/friends/:friendId

Supprimer un ami ⚡ émet WS FRIEND_REMOVE aux deux utilisateurs

POST
/api/friends/:targetId/block

Bloquer un utilisateur

POST
/api/friends/:targetId/unblock

Débloquer un utilisateur

⚡ Side-effects WebSocket

Certaines routes amis déclenchent des notifications WebSocket en temps réel. Si le destinataire est hors ligne, il recevra l'événement via PENDING_PINGS à sa prochaine connexion.
Envoyer une demande d'ami
js
const res = await fetch('https://gateway.alfychat.app/api/friends/request', {
  method: 'POST',
  headers: {
    'Authorization': `Bearer ${token}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    toUserId: 'u2b3c4d5-...',
    message:  'Salut, je te connais du serveur AlfyChat !',
  }),
});
// L'utilisateur cible reçoit l'event WS FRIEND_REQUEST en temps réel

Appels — /api/calls

GET
/api/calls

Historique des appels (manqués, effectués, reçus)

POST
/api/calls

Créer un appel (usage interne — préférer l'event WebSocket CALL_INITIATE)

GET
/api/calls/:id

Détails d'un appel spécifique (durée, participants, type)

Appels WebRTC — via WebSocket uniquement

Pour initier un appel, utilisez l'event WebSocket CALL_INITIATE. Tout le signaling WebRTC (offer / answer / ICE) se fait via Socket.IO. L'API REST /api/callssert uniquement à consulter l'historique.