livraison sans DELETE et sans FINDID

This commit is contained in:
2022-06-12 21:32:08 +02:00
parent e3c55b477f
commit 6aedf00bd2
5 changed files with 74 additions and 48 deletions

Binary file not shown.

Binary file not shown.

76
api.py
View File

@@ -1,3 +1,4 @@
#!/usr/bin/python
import wrapper import wrapper
from flask import Flask, jsonify, request from flask import Flask, jsonify, request
@@ -18,50 +19,61 @@ def get_all_personnes():
if result: if result:
return jsonify(status="True", return jsonify(status="True",
result= [ result= [
{"idPersonne":personne.idPersonne, {"id":personne.id,
"nom":personne.nom, "nom":personne.nom,
"prenom":personne.prenom, "prenom":personne.prenom,
"dateNaissance":personne.dateNaissance, "dateNaissance":personne.dateNaissance,
"tel": personne.tel} for personne in result.all() ]) "tel": personne.tel} for personne in result.all() ])
return jsonify(status="False") return jsonify(status="False", result = [{"personne":"inconnu"}])
@app.route('/api/v1/personnes/<id>', methods=['GET']) @app.route('/api/v1/personnes/<id>', methods=['GET'])
def get_personne(id): def get_personne(id):
result = wrapper.get_personne_by_id(id) result = wrapper.get_personne_by_id(id)
if result: if result:
return jsonify(status="True", return jsonify(status="True",
result={"nom":result.nom, result={"id":result.id,
"nom":result.nom,
"prenom":result.prenom, "prenom":result.prenom,
"email":result.email, "dateNaissance":result.dateNaissance,
"ville": result.ville, "tel": result.tel}
"telephone": result.telephone} )
) return jsonify(status="False")
return jsonify(status="False")
@app.route('/api/v1/user/&amp;amp;amp;amp;lt;email&amp;amp;amp;amp;gt;', methods=['PUT']) @app.route('/api/v1/personnes/<id>', methods=['PUT'])
def mofify_user(email): def modify_personne(id):
result = wrapper.update_attribute(email, request.form.to_dict()) result = wrapper.update_attribute(id, request.form.to_dict())
if result: if result:
return jsonify(status="True", return jsonify(status="True",
message= "updated", message= "updated",
result={ result={"id":result.id,
"nom":result.nom, "nom":result.nom,
"prenom":result.prenom, "prenom":result.prenom,
"email":result.email, "dateNaissance":result.dateNaissance,
"ville": result.ville, "tel": result.tel}
"telephone": result.telephone} )
) return jsonify(status= "False")
return jsonify(status= "False")
@app.route('/api/v1/user/<id>', methods=['DELETE'])
def delete_personne(id):
result = wrapper.delete_personne_by_id(id)
if result:
return jsonify(status="True",
message= "Deleted",
id=id
)
return jsonify(status="False")
@app.route('/api/v1/personnes/findid', methods=['GET'])
def find_id():
result = wrapper.find_id()
if result:
return jsonify(status="True",
result={"id":result.id,
}
)
return jsonify(status="False find id")
@app.route('/api/v1/user/&amp;amp;amp;amp;lt;email&amp;amp;amp;amp;gt;', methods=['DELETE'])
def delete_user(email):
result = wrapper.delete_user_by_id(email)
if result:
return jsonify(status="True",
message= "Deleted",
email=email
)
return jsonify(status="False")
if __name__ == '__main__': if __name__ == '__main__':
app.run(host='0.0.0.0', port=5000, debug=True) app.run(host='0.0.0.0', port=5000, debug=True)

View File

@@ -1,7 +1,10 @@
MYSQL_HOST = "172.18.0.3" #MYSQL_HOST = '172.18.0.3'
MYSQL_PORT = 3306 MYSQL_HOST = 'localhost'
MYSQL_USER = "api-python" MYSQL_PORT = '3306'
MYSQL_PWD = "api-python" MYSQL_USER = "root"
MYSQL_PWD = "kamisama123"
#MYSQL_USER = "api-python"
#MYSQL_PWD = "api-python"
MYSQL_DB = "api-python" MYSQL_DB = "api-python"
SQLALCHEMY_DATABASE_URI = "mysql+pymysql://{}:{}@{}:{}/{}".format(MYSQL_USER, SQLALCHEMY_DATABASE_URI = "mysql+pymysql://{}:{}@{}:{}/{}".format(MYSQL_USER,
@@ -9,3 +12,5 @@ MYSQL_PWD,
MYSQL_HOST, MYSQL_HOST,
MYSQL_PORT, MYSQL_PORT,
MYSQL_DB) MYSQL_DB)
#nécessite les modules sqlalchemy et flask de python

View File

@@ -1,7 +1,6 @@
from numpy import int32
from sqlalchemy.orm import sessionmaker from sqlalchemy.orm import sessionmaker
from sqlalchemy.ext.declarative import declarative_base from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import ForeignKey, create_engine, Column, String, DATETIME from sqlalchemy import ForeignKey, create_engine, Column, String, DATETIME,Integer
import config import config
MYSQL_HOST = config.MYSQL_HOST MYSQL_HOST = config.MYSQL_HOST
@@ -24,18 +23,18 @@ Base = declarative_base()
class Personne(Base): class Personne(Base):
# Cette classe correspond à la version objet de notre table personne # Cette classe correspond à la version objet de notre table personne
__tablename__ = "personne" __tablename__ = "personne"
idPersonne = Column(int32,unique=True,ForeignKey=True) id = Column(Integer,unique=True,primary_key=True)
nom = Column(String(100), unique=False, nullable=False, primary_key=False) nom = Column(String(100), unique=False, nullable=False)
prenom = Column(String(100), nullable=False) prenom = Column(String(100), nullable=False)
dateNaissance = Column(DATETIME, nullable=False) dateNaissance = Column(DATETIME, nullable=False)
tel = Column(String(12), nullable=False) tel = Column(String(12), nullable=False)
def add_personne(idPersonne, nom, prenom, dateNaissance, tel): def add_personne(id, nom, prenom, dateNaissance, tel):
try: try:
personne = Personne(idPersonne = idPersonne, personne = Personne(id = id,
nom = nom, nom = nom,
prenom = prenom, prenom = prenom,
dateNaissance=dateNaissance, dateNaissance = dateNaissance,
tel=tel) tel=tel)
session.add(personne) session.add(personne)
session.commit() session.commit()
@@ -61,10 +60,11 @@ def get_all_personnes():
return False return False
def delete_personne_by_id(id): def delete_personne_by_id(id):
#TODO: à controler
try: try:
user_to_delete = get_personne_by_id(id) personne_to_delete = get_personne_by_id(id)
if user_to_delete : if personne_to_delete :
session.delete(user_to_delete) session.delete(personne_to_delete)
session.commit() session.commit()
return True return True
else: else:
@@ -86,3 +86,12 @@ def update_attribute(id, attributes):
except Exception as e: except Exception as e:
print(e) print(e)
return False return False
def find_id():
#TODO trouver comment trouver le max d'un id.
try:
result = session.query(Personne).orderBy(id).first()
return result
except Exception as e:
print("erreur")
return False