Files
adastra_api/src/swagger/members.yaml
T

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