Skip to content
Snippets Groups Projects
Commit 925be674 authored by Yannic Nevado Hidalgo's avatar Yannic Nevado Hidalgo
Browse files

fix(error-handling): sicherstellen das benutzer existieren müssen vor GET und DELETE

parent b7d8f8d5
No related branches found
No related tags found
No related merge requests found
...@@ -53,7 +53,7 @@ Die Routen sind Passwort geschützt. ...@@ -53,7 +53,7 @@ Die Routen sind Passwort geschützt.
# passwort: admin # passwort: admin
---- ----
* Dies kann via `curl --user admin:admin -X GET http://localhost:5000/benutzer/1` getestet werden. Ohne Zugangsdaten bekommt man ein `Unauthorized Access` zurück. * Dies kann via `curl -X GET http://localhost:5000/benutzer/1` getestet werden. Ohne Zugangsdaten bekommt man ein `Unauthorized Access` zurück.
=== GET === GET
......
...@@ -35,12 +35,20 @@ def index(): ...@@ -35,12 +35,20 @@ def index():
@app.route("/benutzer/<id>", methods=["GET"]) @app.route("/benutzer/<id>", methods=["GET"])
@auth.login_required @auth.login_required
def get_email(id): def get_email(id):
benutzer_email = db.session.query(Benutzer.email).filter(Benutzer.customerid == id).first()[0]
return jsonify(email=benutzer_email) exists = db.session.query(db.exists().where(Benutzer.customerid == id)).scalar()
if exists:
benutzer_email = db.session.query(Benutzer.email).filter(Benutzer.customerid == id).first()[0]
return jsonify(email=benutzer_email)
else:
return json.dumps({'Benutzer': 'existiert nicht'})
@app.route("/benutzer", methods=["POST"]) @app.route("/benutzer", methods=["POST"])
@auth.login_required @auth.login_required
def create_user(): def create_user():
new_user = Benutzer( new_user = Benutzer(
vorname=request.json['vorname'], vorname=request.json['vorname'],
nachname=request.json['nachname'], nachname=request.json['nachname'],
...@@ -48,15 +56,30 @@ def create_user(): ...@@ -48,15 +56,30 @@ def create_user():
) )
db.session.add(new_user) db.session.add(new_user)
db.session.commit() db.session.commit()
return json.dumps({'Benutzer': 'hinzugefügt'})
benutzer = json.dumps(
{"vorname": new_user.vorname,
"nachname": new_user.nachname,
"email": new_user.email
})
#return benutzer
return jsonify(benutzer)
@app.route("/benutzer/<id>", methods=["DELETE"]) @app.route("/benutzer/<id>", methods=["DELETE"])
@auth.login_required @auth.login_required
def delete_user(id): def delete_user(id):
Benutzer.query.filter_by(customerid=id).delete()
db.session.commit() exists = db.session.query(db.exists().where(Benutzer.customerid == id)).scalar()
return json.dumps({'Benutzer': 'gelöscht'})
if exists:
Benutzer.query.filter_by(customerid=id).delete()
db.session.commit()
return json.dumps({'Benutzer': 'geloescht'})
else:
return json.dumps({'Benutzer': 'existiert nicht'})
if __name__ == "__main__": if __name__ == "__main__":
app.run(debug=True) app.run(debug=True)
\ No newline at end of file
from flask_sqlalchemy import SQLAlchemy from flask_sqlalchemy import SQLAlchemy
import json
db = SQLAlchemy() db = SQLAlchemy()
...@@ -17,4 +18,5 @@ class Benutzer(db.Model): ...@@ -17,4 +18,5 @@ class Benutzer(db.Model):
self.email = email self.email = email
def __repr__(self): def __repr__(self):
return f"{self.customerID}:{self.vorname}:{self.nachname}:{self.email}" benutzer = json.dumps({"vorname": self.vorname, "nachname": self.nachname, "email": self.email})
\ No newline at end of file return benutzer
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment