Caisse pour l’AIUS écrite en Crystal.
- Installer le compilateur de Crystal ;
- cloner le dépôt ;
crystal deps build;- Qapla’.
Pour compiler :
crystal deps build
Pour exécuter :
$ ./bin/aius_caisse --help
-b HOST, --bind HOST Host to bind (defaults to 0.0.0.0)
-p PORT, --port PORT Port to listen for connections (defaults to 3000)
-s, --ssl Enables SSL
--ssl-key-file FILE SSL key file
--ssl-cert-file FILE SSL certificate file
-h, --help Shows this help
$ ./bin/aius_caisse
[development] Kemal is ready to lead at http://0.0.0.0:3000
Kemal is going to take a rest!
- Créé un nouveau produit dans la liste des produits mis en vente.
- Retourne les informations de ce nouveau produit.
- Entrée :
{
"id": "<Int32>",
"name": "<String>",
"category"?: "<Int32> | Nil"
"price": "<Float64>"
}- Sortie :
{
"id": "<Int32>",
"name": "<String>",
"category"?: "<Int32> | Nil"
"price": "<Float64>"
}- Liste de tous les produits mis en vente.
- Sortie :
[{
"id": "<Int32>",
"name": "<String>",
"category"?: "<Int32> | Nil"
"price": "<Float64>"
},
...
]- Retourne les informations du produit dont l'id correspond, de la liste des produits mis en vente (si ce produit existe dans cette liste).
- Sorties :
- si l'id correspond à celui d'un produit existant dans la liste des produits mis en ventes
{
"id": "<Int32>",
"name": "<String>",
"category"?: "<Int32> | Nil"
"price": "<Float64>"
}- si l'id ne correspond à celui d'un produit existant dans la liste des produits mis en ventes
{
"status": "error",
"message": "product not found"}- Supprime le produit, dont l'id correspond, de la liste des produits mis en vente (si ce produit existe dans cette liste).
- Sorties :
- si l'id correspond à celui d'un produit existant dans la liste des produits mis en ventes
{
"status": ok
}- si l'id ne correspond à celui d'un produit existant dans la liste des produits mis en ventes
{
"status": "error",
"message": "product not found"
}- Modifie les informations du produit dont l'id correspond.
- Entrée :
{
"id"?: "<Int32>",
"name"?: "<String>",
"category"?: "<Int32> | Nil"
"price"?: "<Float64>"
}- Sortie :
{
"id": "<Int32>",
"name": "<String>",
"category"?: "<Int32> | Nil"
"price": "<Float64>"
}- Créé une nouvelle catégorie dans la liste des catégories des produits mis en vente et des services proposés.
- Retourne les informations de cette nouvelle catégorie.
- Entrée :
{
"name": "<String>"
}- Sortie :
{
"id": "<Int32>",
"name": "<String>"
}- Retourne la liste des catégories des produites mis en vente et des services proposés.
- Sortie :
[{
"id": "<Int32>",
"name": "<String>"
},
...
]- Retourne les informations de la catégorie dont l'id correspond, de la liste des catégorires des produits mis en vente et des services proposés (si ce produit/service existe dans cette liste).
- Sorties :
- si l'id correspond à celui d'une catégorie existante dans la liste des catégories des produits mis en ventes et services proposés
{
"id": "<Int32>",
"name": "<String>"
}- si l'id ne correspond pas à celui d'une catégorie existante dans la liste des catégories des produits mis en ventes et services proposés
{
"status": "error",
"message": "category not found"
}- Supprime la catégorie, dont l'id correspond, de la liste des catégories des produits mis en vente et services proposés (si ce produit/service existe dans cette liste).
- Sorties :
- si l'id correspond à celui d'une catégorie existante dans la liste des catégories des produits mis en ventes et services proposés
{
"status": "ok"
}- si l'id ne correspond pas à celui d'une catégorie existante dans la liste des catégories des produits mis en ventes et services proposés
{
"status": "error",
"message": "category not found"
}- Modifie les informations de la catégorie dont l'id correspond.
- Entrée :
{
"name": "<String>",
}- Sortie :
{
"id": "<Int32>",
"name": "<String>"
}Renvoie la liste des vente entre deux date.
Entrée :
- begin : Date du debut de l'intervalle. Valeur par défaut : "1995-04-24"
- end : Date de fin de l'intervalle. Valeur par défaut : Time.now()
Sortie :
[
{
"id": "<id>",
"seller": "<uuid>",
"sale_products": [
{
"product": "<id>",
"quantity": "<Int32>"
},
...
],
"date": "<date>"
},
...
]Enregistre une vente dans la base de donnée.
Entrée :
{
"data" :
[
{
"id": "<id>",
"quantity": "<Int32>"
},
...
]
}Sortie
{
"status": "OK"
}
ou s'il y a une erreur
{
"status": "error",
"message": "<String>"
}
Supprime une vente.
Sortie :
{
"status": "OK"
}
ou s'il y a une erreur
{
"status": "error",
"message": "No row affected"
}XXX: Fill me
- Luka Vandervelden
- Marie-France Kommer
- Quentin Gliech