doc-public/source/_static/api.yml
ddidier/sphinx-doc d654ae6731 2024-02-11
2024-02-11 22:27:52 +00:00

431 lines
No EOL
12 KiB
YAML

# @Author: GnomeZworc <Nicolas Boufidjeline>
# @Date: 2023-04-08 12:16:58
# @Last Modified by: GnomeZworc <Nicolas Boufidjeline>
# @Last Modified time: 2023-06-05 15:15:04
openapi: 3.0.3
info:
title: account gestion
version: 1.0.0
components:
securitySchemes:
BearerAuth:
type: http
scheme: bearer
tags:
- name: Accounts
- name: Transactions
- name: Recurrences
- name: Days
paths:
/api/accounts:
get:
tags:
- Accounts
security:
- BearerAuth: []
summary: Lister tous les comptes
parameters:
- in: query
name: page
schema:
type: integer
minimum: 1
description: Numéro de la page à récupérer
- in: query
name: limit
schema:
type: integer
minimum: 1
description: Nombre de comptes à retourner par page
responses:
'200':
description: Liste des comptes récupérée avec succès
content:
application/json:
schema:
type: object
properties:
accounts:
type: array
items:
type: object
properties:
id:
type: integer
owner_id:
type: string
name:
type: string
opening_amount:
type: number
opening_date:
type: string
'400':
description: Données de requête invalides
post:
tags:
- Accounts
security:
- BearerAuth: []
summary: Créer un nouveau compte
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
owner_id:
type: string
name:
type: string
opening_amount:
type: number
opening_date:
type: string
format: date
responses:
'201':
description: Compte créé avec succès
'400':
description: Données de requête invalides
/api/accounts/{id}:
put:
tags:
- Accounts
security:
- BearerAuth: []
summary: Mettre à jour les informations d'un compte
parameters:
- in: path
name: id
required: true
description: ID du compte à mettre à jour
schema:
type: integer
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
validation_date:
type: string
format: date
responses:
'200':
description: Informations du compte mises à jour avec succès
'404':
description: Compte non trouvé
'400':
description: Données de requête invalides
/api/transactions:
get:
tags:
- Transactions
security:
- BearerAuth: []
summary: Lister toutes les transactions
parameters:
- in: query
name: start_date
description: Date de début de la plage de dates
schema:
type: string
format: date
- in: query
name: end_date
description: Date de fin de la plage de dates
schema:
type: string
format: date
- in: query
name: page
schema:
type: integer
minimum: 1
description: Numéro de la page à récupérer
- in: query
name: limit
schema:
type: integer
minimum: 1
description: Nombre de transactions à retourner par page
- in: query
name: not_validated_only
schema:
type: boolean
description: Ask if the not validated entry
- in: query
name: account_id
required: true
schema:
type: integer
description: Set account id
responses:
'200':
description: Liste des transactions récupérée avec succès
content:
application/json:
schema:
type: object
properties:
transactions:
type: array
items:
type: object
properties:
id:
type: integer
account_name:
type: string
creditor_name:
type: string
transaction_type_name:
type: string
date:
type: string
format: date
amount:
type: number
is_positive:
type: boolean
is_validated:
type: boolean
currentPage:
type: integer
totalPages:
type: integer
'400':
description: Données de requête invalides
post:
tags:
- Transactions
security:
- BearerAuth: []
summary: Créer une nouvelle transaction
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- account_id
- creditor_id
- transaction_type_id
- date
- amount
properties:
account_id:
type: integer
creditor_id:
type: integer
transaction_type_id:
type: integer
date:
type: string
format: date
amount:
type: number
is_positive:
type: boolean
is_validated:
type: boolean
responses:
'201':
description: Transaction créée avec succès
'400':
description: Données de requête invalides
/api/transactions/{id}:
get:
tags:
- Transactions
security:
- BearerAuth: []
summary: Récupérer les informations d'une transaction
parameters:
- in: path
name: id
required: true
description: ID de la transaction à récupérer
schema:
type: integer
responses:
'200':
description: Informations de la transaction récupérées avec succès
content:
application/json:
schema:
type: object
properties:
id:
type: integer
account_id:
type: integer
creditor_id:
type: integer
transaction_type_id:
type: integer
date:
type: string
format: date
amount:
type: number
is_positive:
type: boolean
is_validated:
type: boolean
'404':
description: Transaction non trouvée
/api/recurrences:
post:
tags:
- Recurrences
security:
- BearerAuth: []
summary: Créer une nouvelle récurrence
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- account_id
- creditor_id
- transaction_type_id
- last_appearance_date
- frequency
- amount
properties:
account_id:
type: integer
creditor_id:
type: integer
transaction_type_id:
type: integer
amount:
type: number
is_positive:
type: boolean
frequency:
type: string
enum:
- daily
- weekly
- biweekly
- monthly
- bimonthly
- quarterly
- semiannually
- annually
last_appearance_date:
type: string
format: date
appearance_count:
type: integer
responses:
'201':
description: Récurrence créée avec succès
'400':
description: Données de requête invalides
/api/days/{id}:
get:
tags:
- Days
security:
- BearerAuth: []
summary: Lister les jours en fonction de la plage de dates
parameters:
- in: path
name: id
required: true
description: ID de la récurrence à supprimer
schema:
type: integer
- in: query
name: start_date
description: Date de début de la plage de dates
schema:
type: string
format: date
- in: query
name: end_date
description: Date de fin de la plage de dates
schema:
type: string
format: date
- in: query
name: page
schema:
type: integer
minimum: 1
description: Numéro de la page à récupérer
- in: query
name: limit
schema:
type: integer
minimum: 1
description: Nombre de jours à retourner par page
responses:
'200':
description: Liste des jours récupérée avec succès
content:
application/json:
schema:
type: object
properties:
days:
type: array
items:
type: object
properties:
id:
type: integer
account_id:
type: integer
profit:
type: number
loss:
type: number
balance:
type: number
date:
type: string
format: date
currentPage:
type: integer
totalPages:
type: integer
'400':
description: Données de requête invalides
/api/days/calculate/{account_id}:
get:
tags:
- Days
security:
- BearerAuth: []
summary: Calculer les informations de jour pour un compte donné
parameters:
- in: path
name: account_id
required: true
schema:
type: string
- in: query
name: start_date
description: Date de début de la plage de dates
schema:
type: string
format: date
responses:
'204':
description: Informations de jour calculées avec succès
'400':
description: error