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.