livraison avec api à corriger
This commit is contained in:
67
api.py
Normal file
67
api.py
Normal file
@@ -0,0 +1,67 @@
|
|||||||
|
import wrapper
|
||||||
|
from flask import Flask, jsonify, request
|
||||||
|
|
||||||
|
app = Flask(__name__)
|
||||||
|
|
||||||
|
@app.route('/api/v1/personnes/', methods=['POST'])
|
||||||
|
def create_personne():
|
||||||
|
# On recupere le corps (payload) de la requete
|
||||||
|
payload = request.form.to_dict()
|
||||||
|
result = wrapper.add_personne(**payload)
|
||||||
|
if result:
|
||||||
|
return jsonify(status='True', message='User created')
|
||||||
|
return jsonify(status='False')
|
||||||
|
|
||||||
|
@app.route('/api/v1/personnes/', methods=['GET'])
|
||||||
|
def get_all_personnes():
|
||||||
|
result = wrapper.get_all_personnes()
|
||||||
|
if result:
|
||||||
|
return jsonify(status="True",
|
||||||
|
result= [
|
||||||
|
{"idPersonne":personne.idPersonne,
|
||||||
|
"nom":personne.nom,
|
||||||
|
"prenom":personne.prenom,
|
||||||
|
"dateNaissance":personne.dateNaissance,
|
||||||
|
"tel": personne.tel} for personne in result.all() ])
|
||||||
|
return jsonify(status="False")
|
||||||
|
|
||||||
|
@app.route('/api/v1/personnes/<id>', methods=['GET'])
|
||||||
|
def get_personne(id):
|
||||||
|
result = wrapper.get_personne_by_id(id)
|
||||||
|
if result:
|
||||||
|
return jsonify(status="True",
|
||||||
|
result={"nom":result.nom,
|
||||||
|
"prenom":result.prenom,
|
||||||
|
"email":result.email,
|
||||||
|
"ville": result.ville,
|
||||||
|
"telephone": result.telephone}
|
||||||
|
)
|
||||||
|
return jsonify(status="False")
|
||||||
|
|
||||||
|
@app.route('/api/v1/user/&amp;amp;amp;lt;email&amp;amp;amp;gt;', methods=['PUT'])
|
||||||
|
def mofify_user(email):
|
||||||
|
result = wrapper.update_attribute(email, request.form.to_dict())
|
||||||
|
if result:
|
||||||
|
return jsonify(status="True",
|
||||||
|
message= "updated",
|
||||||
|
result={
|
||||||
|
"nom":result.nom,
|
||||||
|
"prenom":result.prenom,
|
||||||
|
"email":result.email,
|
||||||
|
"ville": result.ville,
|
||||||
|
"telephone": result.telephone}
|
||||||
|
)
|
||||||
|
return jsonify(status= "False")
|
||||||
|
|
||||||
|
@app.route('/api/v1/user/&amp;amp;amp;lt;email&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__':
|
||||||
|
app.run(host='0.0.0.0', port=5000, debug=True)
|
||||||
11
config.py
Normal file
11
config.py
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
MYSQL_HOST = "172.18.0.3"
|
||||||
|
MYSQL_PORT = 3306
|
||||||
|
MYSQL_USER = "api-python"
|
||||||
|
MYSQL_PWD = "api-python"
|
||||||
|
MYSQL_DB = "api-python"
|
||||||
|
|
||||||
|
SQLALCHEMY_DATABASE_URI = "mysql+pymysql://{}:{}@{}:{}/{}".format(MYSQL_USER,
|
||||||
|
MYSQL_PWD,
|
||||||
|
MYSQL_HOST,
|
||||||
|
MYSQL_PORT,
|
||||||
|
MYSQL_DB)
|
||||||
88
wrapper.py
Normal file
88
wrapper.py
Normal file
@@ -0,0 +1,88 @@
|
|||||||
|
from numpy import int32
|
||||||
|
from sqlalchemy.orm import sessionmaker
|
||||||
|
from sqlalchemy.ext.declarative import declarative_base
|
||||||
|
from sqlalchemy import ForeignKey, create_engine, Column, String, DATETIME
|
||||||
|
import config
|
||||||
|
|
||||||
|
MYSQL_HOST = config.MYSQL_HOST
|
||||||
|
MYSQL_PORT = config.MYSQL_PORT
|
||||||
|
MYSQL_USER = config.MYSQL_USER
|
||||||
|
MYSQL_PWD = config.MYSQL_PWD
|
||||||
|
MYSQL_DB = config.MYSQL_DB
|
||||||
|
|
||||||
|
SQLALCHEMY_DATABASE_URI = "mysql+pymysql://{}:{}@{}:{}/{}".format(MYSQL_USER,
|
||||||
|
MYSQL_PWD,
|
||||||
|
MYSQL_HOST,
|
||||||
|
MYSQL_PORT,
|
||||||
|
MYSQL_DB)
|
||||||
|
|
||||||
|
engine = create_engine(SQLALCHEMY_DATABASE_URI)
|
||||||
|
Session = sessionmaker(bind=engine)
|
||||||
|
session = Session()
|
||||||
|
Base = declarative_base()
|
||||||
|
|
||||||
|
class Personne(Base):
|
||||||
|
# Cette classe correspond à la version objet de notre table personne
|
||||||
|
__tablename__ = "personne"
|
||||||
|
idPersonne = Column(int32,unique=True,ForeignKey=True)
|
||||||
|
nom = Column(String(100), unique=False, nullable=False, primary_key=False)
|
||||||
|
prenom = Column(String(100), nullable=False)
|
||||||
|
dateNaissance = Column(DATETIME, nullable=False)
|
||||||
|
tel = Column(String(12), nullable=False)
|
||||||
|
|
||||||
|
def add_personne(idPersonne, nom, prenom, dateNaissance, tel):
|
||||||
|
try:
|
||||||
|
personne = Personne(idPersonne = idPersonne,
|
||||||
|
nom = nom,
|
||||||
|
prenom = prenom,
|
||||||
|
dateNaissance=dateNaissance,
|
||||||
|
tel=tel)
|
||||||
|
session.add(personne)
|
||||||
|
session.commit()
|
||||||
|
return True
|
||||||
|
except Exception as e:
|
||||||
|
print(e)
|
||||||
|
return False
|
||||||
|
|
||||||
|
def get_personne_by_id(id):
|
||||||
|
try:
|
||||||
|
result = session.query(Personne).filter_by(id=id).first()
|
||||||
|
return result
|
||||||
|
except Exception as e:
|
||||||
|
print(e)
|
||||||
|
return False
|
||||||
|
|
||||||
|
def get_all_personnes():
|
||||||
|
try:
|
||||||
|
result = session.query(Personne).filter_by()
|
||||||
|
return result
|
||||||
|
except Exception as e:
|
||||||
|
print(e)
|
||||||
|
return False
|
||||||
|
|
||||||
|
def delete_personne_by_id(id):
|
||||||
|
try:
|
||||||
|
user_to_delete = get_personne_by_id(id)
|
||||||
|
if user_to_delete :
|
||||||
|
session.delete(user_to_delete)
|
||||||
|
session.commit()
|
||||||
|
return True
|
||||||
|
else:
|
||||||
|
return False
|
||||||
|
except Exception as e:
|
||||||
|
print(e)
|
||||||
|
return False
|
||||||
|
|
||||||
|
def update_attribute(id, attributes):
|
||||||
|
try:
|
||||||
|
personne_to_update = get_personne_by_id(id)
|
||||||
|
if personne_to_update :
|
||||||
|
for k,v in attributes.items():
|
||||||
|
setattr(personne_to_update, k, v)
|
||||||
|
session.commit()
|
||||||
|
return personne_to_update
|
||||||
|
else:
|
||||||
|
return False
|
||||||
|
except Exception as e:
|
||||||
|
print(e)
|
||||||
|
return False
|
||||||
Reference in New Issue
Block a user