diff --git a/__pycache__/config.cpython-38.pyc b/__pycache__/config.cpython-38.pyc new file mode 100644 index 0000000..a00c953 Binary files /dev/null and b/__pycache__/config.cpython-38.pyc differ diff --git a/__pycache__/wrapper.cpython-38.pyc b/__pycache__/wrapper.cpython-38.pyc new file mode 100644 index 0000000..aa2acfb Binary files /dev/null and b/__pycache__/wrapper.cpython-38.pyc differ diff --git a/api.py b/api.py index c09c71c..9dcdabc 100644 --- a/api.py +++ b/api.py @@ -1,3 +1,4 @@ +#!/usr/bin/python import wrapper from flask import Flask, jsonify, request @@ -18,50 +19,61 @@ def get_all_personnes(): if result: return jsonify(status="True", result= [ - {"idPersonne":personne.idPersonne, + {"id":personne.id, "nom":personne.nom, "prenom":personne.prenom, "dateNaissance":personne.dateNaissance, "tel": personne.tel} for personne in result.all() ]) - return jsonify(status="False") + return jsonify(status="False", result = [{"personne":"inconnu"}]) @app.route('/api/v1/personnes/', methods=['GET']) def get_personne(id): result = wrapper.get_personne_by_id(id) if result: return jsonify(status="True", - result={"nom":result.nom, + result={"id":result.id, + "nom":result.nom, "prenom":result.prenom, - "email":result.email, - "ville": result.ville, -"telephone": result.telephone} -) -return jsonify(status="False") + "dateNaissance":result.dateNaissance, + "tel": result.tel} + ) + return jsonify(status="False") -@app.route('/api/v1/user/<email>', 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/personnes/', methods=['PUT']) +def modify_personne(id): + result = wrapper.update_attribute(id, request.form.to_dict()) + if result: + return jsonify(status="True", + message= "updated", + result={"id":result.id, + "nom":result.nom, + "prenom":result.prenom, + "dateNaissance":result.dateNaissance, + "tel": result.tel} + ) + return jsonify(status= "False") -@app.route('/api/v1/user/<email>', 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") +@app.route('/api/v1/user/', 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") + if __name__ == '__main__': -app.run(host='0.0.0.0', port=5000, debug=True) \ No newline at end of file + app.run(host='0.0.0.0', port=5000, debug=True) + diff --git a/config.py b/config.py index 97fc3a6..d77856b 100644 --- a/config.py +++ b/config.py @@ -1,11 +1,16 @@ -MYSQL_HOST = "172.18.0.3" -MYSQL_PORT = 3306 -MYSQL_USER = "api-python" -MYSQL_PWD = "api-python" +#MYSQL_HOST = '172.18.0.3' +MYSQL_HOST = 'localhost' +MYSQL_PORT = '3306' +MYSQL_USER = "root" +MYSQL_PWD = "kamisama123" +#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) \ No newline at end of file +MYSQL_DB) + +#nécessite les modules sqlalchemy et flask de python \ No newline at end of file diff --git a/wrapper.py b/wrapper.py index 3c4cc31..b91d8c7 100644 --- a/wrapper.py +++ b/wrapper.py @@ -1,7 +1,6 @@ -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 +from sqlalchemy import ForeignKey, create_engine, Column, String, DATETIME,Integer import config MYSQL_HOST = config.MYSQL_HOST @@ -15,7 +14,7 @@ MYSQL_PWD, MYSQL_HOST, MYSQL_PORT, MYSQL_DB) - + engine = create_engine(SQLALCHEMY_DATABASE_URI) Session = sessionmaker(bind=engine) session = Session() @@ -24,18 +23,18 @@ 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) + id = Column(Integer,unique=True,primary_key=True) + nom = Column(String(100), unique=False, nullable=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): +def add_personne(id, nom, prenom, dateNaissance, tel): try: - personne = Personne(idPersonne = idPersonne, + personne = Personne(id = id, nom = nom, prenom = prenom, - dateNaissance=dateNaissance, + dateNaissance = dateNaissance, tel=tel) session.add(personne) session.commit() @@ -61,10 +60,11 @@ def get_all_personnes(): return False def delete_personne_by_id(id): + #TODO: à controler try: - user_to_delete = get_personne_by_id(id) - if user_to_delete : - session.delete(user_to_delete) + personne_to_delete = get_personne_by_id(id) + if personne_to_delete : + session.delete(personne_to_delete) session.commit() return True else: @@ -85,4 +85,13 @@ def update_attribute(id, attributes): return False except Exception as e: print(e) + 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 \ No newline at end of file