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