RechercheProduit - Alexis-Savoie/neodomo_api GitHub Wiki
Recherche de produits
Permet de rechercher des produits selon certains critères.
URL : /admin/searchProduct
Méthode : POST
Authentification requise : OUI
Headers
{ "Authorization": "Bearer [token]" }
Données optionnel
{
"nameProduct": "[string]",
"description": "[string]",
"priceMin": "[number int]",
"priceMax": "[number int]",
"availableStockMin": "[number int]",
"availableStockMax": "[number int]",
}
Example de données
{
"nameProduct": "T-shirt",
"description": "gamer",
"priceMin": "10000",
"priceMax": "20000",
"availableStockMin": "1",
"availableStockMax": "9999",
"nbSellMin": "0",
"nbSellMax": "9999",
"buyedBy": "[email protected]"
}
Réponse(s) en cas de succès
Condition : Résultat non vide
Code : 200
Contenu :
{
"error": false,
"message": "succès (non-vide)",
"products": {
"idProduct": "XXX",
"nameProduct": "XXX",
"description": "XXX",
"price": "XXX",
"availableStock": "XXX",
"imageURL": "XXX",
"listBill": {
"idBill": "XXX",
"idBill": "XXX"
}
}
}
Condition : Résultat vide
Code : 200
Contenu :
{
"error": false,
"message": "succès (vide)"
}
Réponse(s) en cas d'erreur
Condition : Token invalide
Code : 401
Contenu :
{
"error": true,
"message": "Votre token n'est pas correct"
}
Condition : L'une des données envoyés dans la requête est invalide.
Code : 403
Contenu :
{
"error": true,
"message": "Une ou plusieurs données est invalide"
}
Explication
Après la vérification des données, on effectue un find avec mongoose qui prend un argument un objet composé des données envoyés et en renvoie le résultat à l'administrateur.
Pour nbSell qui est le nombre de vente on cherchera dans la base de données selon la taille de l'objet listBill (car 1 facture = 1 vente).
Pour buyedBy on cherchera dans les factures de l'objet listBill si il y'a une correspondance entre la string de buyedBy et la propriété emailBuyer d'une facture.