feat(browse): gestion CRUD des dossiers depuis la page Browse
- Ajout boutons Modifier/Supprimer sur chaque tuile de dossier - Supprimer visible uniquement si dossier vide (0 APIs, 0 sous-dossiers) - Modale Angular (sans fr-modal DSFR) pour créer/éditer un dossier - Backend: remove() lève BadRequestException si dossier non vide - Ajout fichiers YAML de démo (OpenAPI Petstore, AsyncAPI User Events) Generated with [Claude Code](https://claude.ai/code) via [Happy](https://happy.engineering) Co-Authored-By: Claude <noreply@anthropic.com> Co-Authored-By: Happy <yesreply@happy.engineering>
This commit is contained in:
101
documentation/files-samples-asyncapi/user-events.yaml
Normal file
101
documentation/files-samples-asyncapi/user-events.yaml
Normal file
@@ -0,0 +1,101 @@
|
||||
asyncapi: "3.0.0"
|
||||
info:
|
||||
title: User Events API
|
||||
version: "1.0.0"
|
||||
description: API événementielle pour les actions utilisateurs
|
||||
channels:
|
||||
userSignedUp:
|
||||
address: user.signed.up
|
||||
messages:
|
||||
userSignedUp:
|
||||
$ref: "#/components/messages/UserSignedUp"
|
||||
userLoggedIn:
|
||||
address: user.logged.in
|
||||
messages:
|
||||
userLoggedIn:
|
||||
$ref: "#/components/messages/UserLoggedIn"
|
||||
orderPlaced:
|
||||
address: order.placed
|
||||
messages:
|
||||
orderPlaced:
|
||||
$ref: "#/components/messages/OrderPlaced"
|
||||
operations:
|
||||
onUserSignedUp:
|
||||
action: receive
|
||||
channel:
|
||||
$ref: "#/channels/userSignedUp"
|
||||
onUserLoggedIn:
|
||||
action: receive
|
||||
channel:
|
||||
$ref: "#/channels/userLoggedIn"
|
||||
onOrderPlaced:
|
||||
action: receive
|
||||
channel:
|
||||
$ref: "#/channels/orderPlaced"
|
||||
components:
|
||||
messages:
|
||||
UserSignedUp:
|
||||
name: UserSignedUp
|
||||
title: Utilisateur inscrit
|
||||
summary: Émis lorsqu'un utilisateur crée un compte
|
||||
payload:
|
||||
type: object
|
||||
required:
|
||||
- userId
|
||||
- email
|
||||
- createdAt
|
||||
properties:
|
||||
userId:
|
||||
type: string
|
||||
format: uuid
|
||||
email:
|
||||
type: string
|
||||
format: email
|
||||
createdAt:
|
||||
type: string
|
||||
format: date-time
|
||||
UserLoggedIn:
|
||||
name: UserLoggedIn
|
||||
title: Utilisateur connecté
|
||||
summary: Émis lorsqu'un utilisateur se connecte
|
||||
payload:
|
||||
type: object
|
||||
required:
|
||||
- userId
|
||||
- loginAt
|
||||
properties:
|
||||
userId:
|
||||
type: string
|
||||
format: uuid
|
||||
loginAt:
|
||||
type: string
|
||||
format: date-time
|
||||
OrderPlaced:
|
||||
name: OrderPlaced
|
||||
title: Commande passée
|
||||
summary: Émis lorsqu'une commande est créée
|
||||
payload:
|
||||
type: object
|
||||
required:
|
||||
- orderId
|
||||
- userId
|
||||
- total
|
||||
properties:
|
||||
orderId:
|
||||
type: string
|
||||
format: uuid
|
||||
userId:
|
||||
type: string
|
||||
format: uuid
|
||||
total:
|
||||
type: number
|
||||
format: float
|
||||
items:
|
||||
type: array
|
||||
items:
|
||||
type: object
|
||||
properties:
|
||||
productId:
|
||||
type: string
|
||||
quantity:
|
||||
type: integer
|
||||
Reference in New Issue
Block a user