From 52ca1caa52de629a1729667189456460605b3519 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tim=20Gr=C3=B6ger?= Date: Wed, 1 May 2019 22:43:28 +0200 Subject: [PATCH] clean up code, extra routes for finanzer and baruser --- geruecht/__init__.py | 10 ++++ geruecht/baruser/__init__.py | 0 geruecht/baruser/routes.py | 54 ++++++++++++++++++ geruecht/finanzer/__init__.py | 0 geruecht/finanzer/routes.py | 48 ++++++++++++++++ geruecht/model/creditList.py | 6 +- geruecht/model/user.py | 7 +-- geruecht/routes.py | 102 ++-------------------------------- 8 files changed, 122 insertions(+), 105 deletions(-) create mode 100644 geruecht/baruser/__init__.py create mode 100644 geruecht/baruser/routes.py create mode 100644 geruecht/finanzer/__init__.py create mode 100644 geruecht/finanzer/routes.py diff --git a/geruecht/__init__.py b/geruecht/__init__.py index 5a7316f..535c04e 100644 --- a/geruecht/__init__.py +++ b/geruecht/__init__.py @@ -24,5 +24,15 @@ accesTokenController.start() # login_manager.login_view = 'login' # login_manager.login_message_category = 'info' +MONEY = "moneymaster" +GASTRO = "gastro" +USER = "user" +BAR = "bar" + from geruecht import routes +from geruecht.baruser.routes import baruser +from geruecht.finanzer.routes import finanzer + +app.register_blueprint(baruser) +app.register_blueprint(finanzer) diff --git a/geruecht/baruser/__init__.py b/geruecht/baruser/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/geruecht/baruser/routes.py b/geruecht/baruser/routes.py new file mode 100644 index 0000000..151a65f --- /dev/null +++ b/geruecht/baruser/routes.py @@ -0,0 +1,54 @@ +from flask import Blueprint, request, jsonify +from geruecht import BAR, db +from geruecht.routes import verifyAccessToken +from geruecht.model.user import User +from datetime import datetime + +baruser = Blueprint("baruser", __name__) + +@baruser.route("/bar") +def _bar(): + print(request.headers) + token = request.headers.get("Token") + print(token) + accToken = verifyAccessToken(token, BAR) + + dic = {} + if accToken is not None: + users = User.query.all() + for user in users: + geruecht = None + geruecht = user.getCurrentGeruecht() + if geruecht is not None: + month = geruecht.getMonth(datetime.now().month) + amount = abs(month[0] - month[1]) + if amount != 0: + dic[user.userID] = {"username": user.username, + "firstname": user.firstname, + "lastname": user.lastname, + "amount": abs(month[0] - month[1]) + } + return jsonify(dic) + return jsonify({"error": "permission denied"}), 401 + +@baruser.route("/baradd", methods=['POST']) +def _baradd(): + token = request.headers.get("Token") + print(token) + accToken = verifyAccessToken(token, BAR) + + if accToken is not None: + data = request.get_json() + userID = data['userId'] + amount = int(data['amount']) + + user = User.query.filter_by(userID=userID).first() + geruecht = user.getCurrentGeruecht() + month = geruecht.addAmount(amount) + amount = abs(month[0] - month[1]) + + db.session.add(geruecht) + db.session.commit() + + return jsonify({"userId": user.userID, "amount": amount}) + return jsonify({"error", "permission denied"}), 401 diff --git a/geruecht/finanzer/__init__.py b/geruecht/finanzer/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/geruecht/finanzer/routes.py b/geruecht/finanzer/routes.py new file mode 100644 index 0000000..aae886b --- /dev/null +++ b/geruecht/finanzer/routes.py @@ -0,0 +1,48 @@ +from flask import Blueprint, request, jsonify +from geruecht import MONEY +from geruecht.routes import verifyAccessToken +from geruecht.model.user import User + +finanzer = Blueprint("finanzer", __name__) + + +@finanzer.route("/getFinanzerMain") +def _getFinanzer(): + """ Function for /getFinanzerMain + + Retrieves all User for the groupe 'moneymaster' + + Returns: + A JSON-File with Users or an Error. + example: + + """ + token = request.headers.get("Token") + + accToken = verifyAccessToken(token, MONEY) + if accToken is not None: + users = User.query.all() + dic = {} + for user in users: + dic[user.userID] = user.toJSON() + return jsonify(dic) + return jsonify({"error": "permission denied"}), 401 + +@finanzer.route("/getFinanzerYears", methods=['POST']) +def _getFinanzerYear(): + print(request.headers) + token = request.headers.get("Token") + print(token) + accToken = verifyAccessToken(token, MONEY) + + dic = {} + if accToken is not None: + data = request.get_json() + userID = data['userId'] + + user = User.query.filter_by(userID=userID).first() + dic[user.userID] = {} + for geruecht in user.geruechte: + dic[user.userID][geruecht.year] = geruecht.toJSON() + return jsonify(dic) + return jsonify({"error": "permission denied"}), 401 \ No newline at end of file diff --git a/geruecht/model/creditList.py b/geruecht/model/creditList.py index b6fda39..e0bad3b 100644 --- a/geruecht/model/creditList.py +++ b/geruecht/model/creditList.py @@ -3,7 +3,7 @@ from datetime import datetime class CreditList(db.Model): """ DataBase Object Credit List: - + Attributes: id: id in Database. Is the Primary Key _guthaben: Credit of the Month. @@ -150,7 +150,7 @@ class CreditList(db.Model): def toJSON(self): """ Create Dic to dump in JSON - + Returns: A Dic with static Attributes. """ @@ -192,4 +192,4 @@ class CreditList(db.Model): "credit": self.dez_guthaben, "depts": self.dez_schulden}, } - return dic \ No newline at end of file + return dic diff --git a/geruecht/model/user.py b/geruecht/model/user.py index 6d31e60..930e528 100644 --- a/geruecht/model/user.py +++ b/geruecht/model/user.py @@ -5,7 +5,7 @@ from datetime import datetime class User(db.Model): """ Database Object for User - + Table for all safed User Attributes: @@ -42,7 +42,7 @@ class User(db.Model): if geruecht.year == datetime.now().year - 1: print('fonud last geruecht {}'.format(geruecht)) last = geruecht - + if last: amount = last.getSchulden() return self.createCurrentGeruecht(amount=amount) @@ -60,7 +60,7 @@ class User(db.Model): def toJSON(self): """ Create Dic to dump in JSON - + Returns: A Dic with static Attributes. """ @@ -82,4 +82,3 @@ class User(db.Model): A Bool. True if the password is correct and False if it isn't. """ return True if bcrypt.check_password_hash(self.password, password) else False - diff --git a/geruecht/routes.py b/geruecht/routes.py index 442f59b..62506a8 100644 --- a/geruecht/routes.py +++ b/geruecht/routes.py @@ -1,15 +1,10 @@ -from geruecht import app, db, accesTokenController +from geruecht import app, db, accesTokenController, MONEY, BAR, USER, GASTRO from geruecht.model.user import User from geruecht.model.creditList import CreditList from geruecht.model.priceList import PriceList from datetime import datetime from flask import request, jsonify -MONEY = "moneymaster" -GASTRO = "gastro" -USER = "user" -BAR = "bar" - def verifyAccessToken(token, group): """ Verify Accestoken @@ -20,7 +15,7 @@ def verifyAccessToken(token, group): token: Token to verify. group: Group like 'moneymaster', 'gastro', 'user' or 'bar' Returns: - An the AccesToken for this given Token or None. + An the AccesToken for this given Token or None. """ accToken = accesTokenController.findAccesToken(token) print(accToken) @@ -30,47 +25,6 @@ def verifyAccessToken(token, group): return accToken return None -@app.route("/getFinanzerMain") -def _getFinanzer(): - """ Function for /getFinanzerMain - - Retrieves all User for the groupe 'moneymaster' - - Returns: - A JSON-File with Users or an Error. - example: - - """ - token = request.headers.get("Token") - - accToken = verifyAccessToken(token, MONEY) - if accToken is not None: - users = User.query.all() - dic = {} - for user in users: - dic[user.userID] = user.toJSON() - return jsonify(dic) - return jsonify({"error": "permission denied"}), 401 - -@app.route("/getFinanzerYears", methods=['POST']) -def _getFinanzerYear(): - print(request.headers) - token = request.headers.get("Token") - print(token) - accToken = verifyAccessToken(token, MONEY) - - dic = {} - if accToken is not None: - data = request.get_json() - userID = data['userId'] - - user = User.query.filter_by(userID=userID).first() - dic[user.userID] = {} - for geruecht in user.geruechte: - dic[user.userID][geruecht.year] = geruecht.toJSON() - return jsonify(dic) - return jsonify({"error": "permission denied"}), 401 - @app.route("/valid") def _valid(): token = request.headers.get("Token") @@ -91,7 +45,7 @@ def _valid(): @app.route("/login", methods=['POST']) def _login(): """ Login User - + Nothing to say. Login in User and create an AccessToken for the User. @@ -111,55 +65,7 @@ def _login(): return jsonify(dic) else: return jsonify({"error": "wrong password"}), 401 - return jsonify({"error": "wrong username"}), 402 - -@app.route("/bar") -def _bar(): - print(request.headers) - token = request.headers.get("Token") - print(token) - accToken = verifyAccessToken(token, BAR) - - dic = {} - if accToken is not None: - users = User.query.all() - for user in users: - geruecht = None - geruecht = user.getCurrentGeruecht() - if geruecht is not None: - month = geruecht.getMonth(datetime.now().month) - amount = abs(month[0] - month[1]) - if amount != 0: - dic[user.userID] = {"username": user.username, - "firstname": user.firstname, - "lastname": user.lastname, - "amount": abs(month[0] - month[1]) - } - return jsonify(dic) - return jsonify({"error": "permission denied"}), 401 - -@app.route("/baradd", methods=['POST']) -def _baradd(): - token = request.headers.get("Token") - print(token) - accToken = verifyAccessToken(token, BAR) - - if accToken is not None: - data = request.get_json() - userID = data['userId'] - amount = int(data['amount']) - - user = User.query.filter_by(userID=userID).first() - geruecht = user.getCurrentGeruecht() - month = geruecht.addAmount(amount) - amount = abs(month[0] - month[1]) - - db.session.add(geruecht) - db.session.commit() - - return jsonify({"userId": user.userID, "amount": amount}) - return jsonify({"error", "permission denied"}), 401 - + return jsonify({"error": "wrong username"}), 402 @app.route("/getFinanzer") def getFinanzer():