271 lines
7.4 KiB
YAML
271 lines
7.4 KiB
YAML
paths:
|
|
/api/herowars/members:
|
|
get:
|
|
summary: Récupère la liste de tous les membres
|
|
description: Retourne une liste paginée de tous les membres. Authentification requise.
|
|
tags:
|
|
- Members
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- in: query
|
|
name: page
|
|
schema:
|
|
type: integer
|
|
default: 1
|
|
description: Numéro de page
|
|
- in: query
|
|
name: limit
|
|
schema:
|
|
type: integer
|
|
default: 20
|
|
description: Nombre de membres par page
|
|
- in: query
|
|
name: clanId
|
|
schema:
|
|
type: integer
|
|
description: Filtrer les membres par clan
|
|
- in: query
|
|
name: search
|
|
schema:
|
|
type: string
|
|
description: Terme de recherche pour les membres
|
|
responses:
|
|
'200':
|
|
description: Liste des membres récupérée avec succès
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
members:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/Member'
|
|
membersCount:
|
|
type: integer
|
|
'401':
|
|
description: Non authentifié
|
|
'400':
|
|
description: Erreur de validation
|
|
'500':
|
|
description: Erreur serveur
|
|
|
|
post:
|
|
summary: Crée un nouveau membre
|
|
description: Crée un nouveau membre du clan. Authentification requise.
|
|
tags:
|
|
- Members
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- member
|
|
properties:
|
|
member:
|
|
type: object
|
|
required:
|
|
- userId
|
|
- clanId
|
|
properties:
|
|
userId:
|
|
type: integer
|
|
example: 1
|
|
clanId:
|
|
type: integer
|
|
example: 1
|
|
role:
|
|
type: string
|
|
enum: ["member", "officer", "leader"]
|
|
default: "member"
|
|
example: "member"
|
|
joinedAt:
|
|
type: string
|
|
format: date-time
|
|
responses:
|
|
'201':
|
|
description: Membre créé avec succès
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
member:
|
|
$ref: '#/components/schemas/Member'
|
|
'400':
|
|
description: Données invalides
|
|
'401':
|
|
description: Non authentifié
|
|
'422':
|
|
description: Erreur de validation des données
|
|
'500':
|
|
description: Erreur serveur
|
|
|
|
/api/herowars/members/{memberId}:
|
|
get:
|
|
summary: Récupère les détails d'un membre
|
|
description: Retourne les détails complets d'un membre spécifique. Authentification requise.
|
|
tags:
|
|
- Members
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- in: path
|
|
name: memberId
|
|
required: true
|
|
schema:
|
|
type: integer
|
|
description: L'ID unique du membre
|
|
responses:
|
|
'200':
|
|
description: Membre récupéré avec succès
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
member:
|
|
$ref: '#/components/schemas/Member'
|
|
'401':
|
|
description: Non authentifié
|
|
'404':
|
|
description: Membre non trouvé
|
|
'500':
|
|
description: Erreur serveur
|
|
|
|
put:
|
|
summary: Met à jour un membre
|
|
description: Met à jour les informations d'un membre (rôle, date d'adhésion, etc.). Authentification requise.
|
|
tags:
|
|
- Members
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- in: path
|
|
name: memberId
|
|
required: true
|
|
schema:
|
|
type: integer
|
|
description: L'ID unique du membre
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- member
|
|
properties:
|
|
member:
|
|
type: object
|
|
properties:
|
|
role:
|
|
type: string
|
|
enum: ["member", "officer", "leader"]
|
|
joinedAt:
|
|
type: string
|
|
format: date-time
|
|
responses:
|
|
'200':
|
|
description: Membre mis à jour avec succès
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
member:
|
|
$ref: '#/components/schemas/Member'
|
|
'401':
|
|
description: Non authentifié
|
|
'404':
|
|
description: Membre non trouvé
|
|
'422':
|
|
description: Erreur de validation des données
|
|
'500':
|
|
description: Erreur serveur
|
|
|
|
delete:
|
|
summary: Supprime un membre
|
|
description: Supprime un membre du clan. Authentification requise.
|
|
tags:
|
|
- Members
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- in: path
|
|
name: memberId
|
|
required: true
|
|
schema:
|
|
type: integer
|
|
description: L'ID unique du membre
|
|
responses:
|
|
'200':
|
|
description: Membre supprimé avec succès
|
|
'401':
|
|
description: Non authentifié
|
|
'403':
|
|
description: Vous n'êtes pas autorisé à supprimer ce membre
|
|
'404':
|
|
description: Membre non trouvé
|
|
'500':
|
|
description: Erreur serveur
|
|
|
|
components:
|
|
schemas:
|
|
Member:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: integer
|
|
description: Identifiant unique du membre
|
|
userId:
|
|
type: integer
|
|
description: ID de l'utilisateur associé
|
|
user:
|
|
type: object
|
|
description: Informations de l'utilisateur
|
|
properties:
|
|
id:
|
|
type: integer
|
|
username:
|
|
type: string
|
|
email:
|
|
type: string
|
|
image:
|
|
type: string
|
|
clanId:
|
|
type: integer
|
|
description: ID du clan
|
|
clan:
|
|
type: object
|
|
description: Informations du clan
|
|
properties:
|
|
id:
|
|
type: integer
|
|
name:
|
|
type: string
|
|
level:
|
|
type: integer
|
|
role:
|
|
type: string
|
|
description: Rôle du membre dans le clan
|
|
enum: ["member", "officer", "leader"]
|
|
example: "member"
|
|
joinedAt:
|
|
type: string
|
|
format: date-time
|
|
description: Date d'adhésion au clan
|
|
createdAt:
|
|
type: string
|
|
format: date-time
|
|
description: Date/heure de création du membre
|
|
updatedAt:
|
|
type: string
|
|
format: date-time
|
|
description: Date/heure de la dernière mise à jour
|