示例#1
0
def deleteCategorieProduit(request):

    if (request.method == "DELETE"):
        if Validators.is_not_empty(request.body):
            data = Validators.is_valid_json(request.body)
            if data == False:
                return HttpResponseBadRequest("Le JSON dans le corps de votre requête est mal formaté")
            
            fields = ["id"]
            errors = Validators.keys_are_inside_arrays(data, fields)
            
            if Validators.is_type(errors, list):
                return HttpResponseBadRequest("Champs manquants : " + json.dumps(errors))
            
            id = data["id"]

            categorieProduit = CategorieProduit.objects.filter(pk=id)
            
            if not Validators.is_not_empty(categorieProduit):
                return HttpResponseBadRequest("Catégorie non existante")
                
            categorieProduit[0].delete()

            return JsonResponse({'etat' : "Catégorie supprimée"})
        else:
            return HttpResponseBadRequest("Vous n'avez pas mis de corps à votre requête")
    
    return HttpResponseForbidden("Accès refusé")
示例#2
0
def deleteUser(request):

    if (request.method == "DELETE"):
        if Validators.is_not_empty(request.body):
            data = Validators.is_valid_json(request.body)
            if data == False:
                return HttpResponseBadRequest(
                    "Le JSON dans le corps de votre requête est mal formaté")

            fields = ["login"]
            errors = Validators.keys_are_inside_arrays(data, fields)

            if Validators.is_type(errors, list):
                return HttpResponseBadRequest("Champs manquants : " +
                                              json.dumps(errors))

            login = data["login"]

            userExist = User.objects.filter(login=login)

            if Validators.is_not_empty(userExist):
                userExist[0].delete()
            else:
                return HttpResponseForbidden("Utilisateur non existant")

            return JsonResponse({'etat': "Utilisateur supprimé"})
        else:
            return HttpResponseBadRequest(
                "Vous n'avez pas mis de corps à votre requête")

    return HttpResponseForbidden("Accès refusé")
示例#3
0
def editUser(request):

    if (request.method == "PUT"):
        if Validators.is_not_empty(request.body):
            data = Validators.is_valid_json(request.body)
            if data == False:
                return HttpResponseBadRequest(
                    "Le JSON dans le corps de votre requête est mal formaté")

            fields = ["login", "mdp", "niveauAuth"]

            errors = Validators.keys_are_inside_arrays(data, fields)

            if Validators.is_type(errors, list):
                return HttpResponseBadRequest("Champs manquants : " +
                                              json.dumps(errors))

            login = data["login"]
            mdp = data["mdp"]
            niveauAuth = data["niveauAuth"]

            user = User.objects.filter(login=login)

            if not Validators.is_not_empty(user):
                return HttpResponseBadRequest("Utilisateur non existant")

            user = user[0]

            if Validators.is_not_empty(login):
                user.login = login

            if Validators.is_not_empty(mdp):
                randomStr = random_generator()
                grainsel = hashlib.md5(randomStr.encode())
                grainsel = grainsel.hexdigest()
                user.grainsel = grainsel

                mdpHashed = hashlib.md5(mdp.encode() + grainsel.encode())
                user.mdp = mdpHashed.hexdigest()

            if Validators.is_not_empty(niveauAuth):
                try:
                    int(niveauAuth)
                except ValueError:
                    return HttpResponseBadRequest(
                        "Niveau d'authentification doit être un entier")

                user.niveauAuth = niveauAuth

            user.save()

            return JsonResponse({'etat': "Utilisateur modifié"})
        else:
            return HttpResponseBadRequest(
                "Vous n'avez pas mis de corps à votre requête")
    else:
        return HttpResponseForbidden("Accès refusé")
示例#4
0
def login(request):
    if (request.method == "POST"):
        data = Validators.is_valid_json(request.body)
        if data == False:
            return HttpResponseBadRequest(
                "Le JSON dans le corps de votre requête est mal formaté")

        fields = ["login", "mdp"]
        errors = Validators.keys_are_inside_arrays(data, fields)

        if Validators.is_type(errors, list):
            return HttpResponseBadRequest("Champs manquants : " +
                                          json.dumps(errors))

        user = User.objects.filter(login=data['login'])

        if Validators.is_not_empty(user):
            hashmdp = hashlib.md5(data['mdp'].encode() +
                                  user[0].grainsel.encode())
            hashmdp = hashmdp.hexdigest()
            if user[0].mdp.lower() == hashmdp.lower():
                user.update(dateDerniereConnexion=datetime.datetime.now(),
                            token=random_generator(size=30))
                return JsonResponse({
                    'etat': "Connexion réussie",
                    'lvl': user[0].niveauAuth,
                    'token': user[0].token
                })
            else:
                return HttpResponseBadRequest("Mauvais indentifiants")
        else:
            return HttpResponseBadRequest("Identifiants non existants")
    else:
        return HttpResponseForbidden("Accès refusé")
示例#5
0
def editCategorieProduit(request):
    
    if (request.method == "PUT"):
        if Validators.is_not_empty(request.body):
            data = Validators.is_valid_json(request.body)
            if data == False:
                return HttpResponseBadRequest("Le JSON dans le corps de votre requête est mal formaté")
            
            fields = ["id", "nom", "colorGraph"]
            errors = Validators.keys_are_inside_arrays(data, fields)
            
            if Validators.is_type(errors, list):
                return HttpResponseBadRequest("Champs manquants : " + json.dumps(errors))
            
            categorie = CategorieProduit()

            id = data["id"]
            nom = data["nom"]
            colorGraph = data["colorGraph"]

            categorie = CategorieProduit.objects.filter(pk=id)
            
            if not Validators.is_not_empty(categorie):
                return HttpResponseBadRequest("Categorie non existante")

            categorie = categorie[0]

            if Validators.is_not_empty(nom) & Validators.is_not_empty(colorGraph):
                categorie.nom = nom
                categorie.colorGraph = colorGraph
            else:
                return HttpResponseBadRequest("Un des champs est vide")

            categorie.save()

            return JsonResponse({'etat' : "Categorie modifiée"})
        else:
            return HttpResponseBadRequest("Vous n'avez pas mis de corps à votre requête")
    else:
        return HttpResponseForbidden("Accès refusé")
示例#6
0
def load(request):
    if (request.method == "POST"):

        try: # Verification qu'un fichier file est bien présent
            file = request.FILES["file"]
            print("c'est un file")
        except Exception as error:

            print("c'est pas un file")
            return HttpResponseBadRequest(error)
        print(file.content_type)
        print(file)


        if(file.content_type == 'application/vnd.ms-excel'): # Verification du type de fichier
            print("c'est une csv")
            firstLine = file.readline().decode('utf-8')
            secondLine = file.readline().decode('utf-8')
            thirdLine = file.readline().decode('utf-8')
            print(firstLine)
            print(secondLine)
            print(thirdLine)
            lineColonne = file.readline()  # enlever la ligne des noms de colonnes
            fields = ["DATE", "COMPTOIR", "BARMAN", "CLIENT", "ETIQUETTE","QUANTITE","TOTAL","METHODE DE PAIEMENT", "SELLING PRICE", "PURCHASE PRICE", "BENEFIT"]
            lineColonne2 = lineColonne.decode('utf-8')
            lineColonne3 = lineColonne2.split(';')

            i = 0
            for word in lineColonne3:

                wordUp = word.upper()
                wordUpRight = wordUp.replace('\"', "")
                wordUpRightRight = unicodedata.normalize('NFKD', wordUpRight).encode('ascii', 'ignore').strip().decode('utf-8')

                if wordUpRightRight != fields[i]:
                    return HttpResponseBadRequest("le fichier csv n'est pas au bon format")
                i+=1


            o = 3
            ventesNouvellesTotal = 0
            for line in file.readlines():# on balaye tout les lignes du fichier puis on fait les requetes necessaire au remplissage de la BDD

                line2 = line.decode('utf-8')
                line3 = line2.split(';')
                produit = Produit()
                produit.nom = line3[4].replace('\"', "")
                productExist = Produit.objects.filter(nom=produit.nom)

                if Validators.is_not_empty(productExist):
                    #print("produit déjà existant")
                    produit = productExist[0]
                else:
                    produit.prixAchat = line3[-2].replace('\"', "")
                    produit.prixVente = line3[-3].replace('\"', "")
                    produit.save()
                    listNewProduct.append(produit)

                lieuDeVie = LieuDeVie()
                lieuDeVie.nom = line3[1].replace('\"', "")
                lieuDeVieExist = LieuDeVie.objects.filter(nom=lieuDeVie.nom)

                if Validators.is_not_empty(lieuDeVieExist):
                    #print("lieuDeVie déjà existant")
                    lieuDeVie = lieuDeVieExist[0]
                else:
                    #print("existe pas")
                    lieuDeVie.nom = lieuDeVie.nom
                    lieuDeVie.save()

                vente = Vente()
                vente.dateVente = line3[0].replace('\"', "")
                vente.idProduit = produit
                vente.idLieuDeVie = lieuDeVie
                vente.selledBy = line3[2].replace('\"', "")
                vente.purchaseBy = line3[3].replace('\"', "")
                vente.quantite = line3[5].replace('\"', "")
                vente.amount = line3[6].replace('\"', "")
                vente.benefit = line3[10].replace('\"', "")
                venteExist = Vente.objects.filter(dateVente = vente.dateVente)
                if Validators.is_not_empty(venteExist):
                    print(o)
                    listVenteAlreadyExist.append(Vente_to_json(vente))

                else :
                    print("vente existe pas")
                    ventesNouvellesTotal += 1
                    vente.save()
                o += 1
            reponse = JsonResponse({"ventesNouvellesTotal" : ventesNouvellesTotal},safe=False)

            """for d in listVenteAlreadyExist:
                listVenteAlreadyExist.remove(d)"""

            return reponse
        else :
            print("c'est pas une csv")
            return HttpResponseBadRequest("Fichier incompatible ! Veuillez upload un fichier CSV")


    else:
        return HttpResponseForbidden("Demande refusée")
示例#7
0
def editProduit(request):
    
    if (request.method == "PUT"):
        if Validators.is_not_empty(request.body):
            data = Validators.is_valid_json(request.body)
            if data == False:
                return HttpResponseBadRequest("Le JSON dans le corps de votre requête est mal formaté")
            
            fields = ["id", "categorieProduit", "nom", "prixAchat", "prixVente", "disponible"]
            errors = Validators.keys_are_inside_arrays(data, fields)
            
            if Validators.is_type(errors, list):
                return HttpResponseBadRequest("Champs manquants : " + json.dumps(errors))
            
            produit = Produit()
            categorieProduit = data["categorieProduit"]
            id = data["id"]
            nom = data["nom"]
            prixAchat = data["prixAchat"]
            prixVente = data["prixVente"]
            disponible = data["disponible"]
            quantite = data["quantite"]

            produit = Produit.objects.filter(pk=id)
            
            if not Validators.is_not_empty(produit):
                return HttpResponseBadRequest("Produit non existant")

            produit = produit[0]

            if Validators.is_not_empty(categorieProduit):

                categorieProduitExist = CategorieProduit.objects.filter(nom=categorieProduit)

                if Validators.is_not_empty(categorieProduitExist) == False:
                    return HttpResponseBadRequest("Catégorie de produit non existante")

                produit.idCategorieProduit = categorieProduitExist[0]

            else:
                return HttpResponseBadRequest("Champ catégorie produit vide")

            if Validators.is_not_empty(nom) & Validators.is_not_empty(prixAchat) & Validators.is_not_empty(prixVente) & Validators.is_not_empty(disponible) & Validators.is_not_empty(quantite):
                produit.nom = nom
                produit.prixAchat = prixAchat
                produit.prixVente = prixVente
                produit.quantite = quantite

                produit.alt = nom.lower()
                if (disponible.lower() == "false"):
                    produit.disponible = False
                elif (disponible.lower() == "true"):
                    produit.disponible = True
                else:
                    produit.disponible = True
            else:
                return HttpResponseBadRequest("Un des champs est vide")

            produit.save()

            return JsonResponse({'etat' : "Produit modifié"})
        else:
            return HttpResponseBadRequest("Vous n'avez pas mis de corps à votre requête")
    else:
        return HttpResponseForbidden("Accès refusé")