flaschengeist/geruecht/user/routes.py

105 lines
3.5 KiB
Python
Raw Normal View History

2020-01-17 00:05:58 +00:00
from flask import Blueprint, request, jsonify
from geruecht.decorator import login_required
import geruecht.controller.userController as uc
2020-01-17 00:05:58 +00:00
from geruecht.model import USER
from datetime import datetime
2020-02-23 21:31:22 +00:00
from geruecht.exceptions import DayLocked
2020-01-17 00:05:58 +00:00
user = Blueprint("user", __name__)
userController = uc.UserController()
2020-01-17 00:05:58 +00:00
@user.route("/user/main")
@login_required(groups=[USER])
def _main(**kwargs):
if 'accToken' in kwargs:
accToken = kwargs['accToken']
2020-01-17 00:05:58 +00:00
accToken.user = userController.getUser(accToken.user.uid)
retVal = accToken.user.toJSON()
retVal['creditList'] = {credit.year: credit.toJSON() for credit in accToken.user.geruechte}
return jsonify(retVal)
return jsonify("error", "something went wrong"), 500
2020-01-17 00:05:58 +00:00
@user.route("/user/addAmount", methods=['POST'])
@login_required(groups=[USER])
def _addAmount(**kwargs):
if 'accToken' in kwargs:
accToken = kwargs['accToken']
2020-01-17 00:05:58 +00:00
data = request.get_json()
amount = int(data['amount'])
date = datetime.now()
userController.addAmount(accToken.user.uid, amount, year=date.year, month=date.month)
accToken.user = userController.getUser(accToken.user.uid)
retVal = accToken.user.toJSON()
retVal['creditList'] = {credit.year: credit.toJSON() for credit in accToken.user.geruechte}
return jsonify(retVal)
2020-01-26 22:31:22 +00:00
return jsonify({"error": "something went wrong"}), 500
@user.route("/user/saveConfig", methods=['POST'])
@login_required(groups=[USER])
def _saveConfig(**kwargs):
try:
if 'accToken' in kwargs:
accToken = kwargs['accToken']
data = request.get_json()
accToken.user = userController.modifyUser(accToken.user, accToken.ldap_conn, data)
retVal = accToken.user.toJSON()
retVal['creditList'] = {credit.year: credit.toJSON() for credit in accToken.user.geruechte}
return jsonify(retVal)
2020-01-26 22:31:22 +00:00
except Exception as err:
return jsonify({"error": err}), 409
@user.route("/user/job", methods=['POST'])
@login_required(groups=[USER])
2020-02-22 10:15:20 +00:00
def _getUser(**kwargs):
data = request.get_json()
day = data['day']
month = data['month']
year = data['year']
date = datetime(year, month, day, 12)
2020-02-23 21:31:22 +00:00
lockedDay = userController.getLockedDay(date)
if not lockedDay:
lockedDay = {
'date': {
'year': year,
'month': month,
'day': day
},
'locked': False
}
else:
lockedDay = {
'date': {
'year': year,
'month': month,
'day': day
},
'locked': lockedDay['locked']
}
retVal = {
'worker': userController.getWorker(date),
2020-02-23 21:31:22 +00:00
'day': lockedDay
}
2020-02-22 10:15:20 +00:00
print(retVal)
2020-02-23 21:31:22 +00:00
return jsonify(retVal)
@user.route("/user/addJob", methods=['POST'])
@login_required(groups=[USER])
def _addUser(**kwargs):
try:
if 'accToken' in kwargs:
accToken = kwargs['accToken']
user = accToken.user
data = request.get_json()
day = data['day']
month = data['month']
year = data['year']
date = datetime(year,month,day,12)
retVal = userController.addWorker(user.uid, date, userExc=True)
print(retVal)
return jsonify(retVal)
except DayLocked as err:
return jsonify({'error': err}), 403
except Exception as err:
return jsonify({'error': err}), 409