76 lines
2.8 KiB
Python
76 lines
2.8 KiB
Python
from flask import Blueprint, request, jsonify
|
|
from geruecht.decorator import login_required
|
|
import geruecht.controller.userController as uc
|
|
from geruecht.model import USER
|
|
from datetime import datetime
|
|
import time
|
|
import traceback
|
|
|
|
user = Blueprint("user", __name__)
|
|
|
|
userController = uc.UserController()
|
|
|
|
|
|
@user.route("/user/main")
|
|
@login_required(groups=[USER])
|
|
def _main(**kwargs):
|
|
if 'accToken' in kwargs:
|
|
accToken = kwargs['accToken']
|
|
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
|
|
|
|
@user.route("/user/addAmount", methods=['POST'])
|
|
@login_required(groups=[USER])
|
|
def _addAmount(**kwargs):
|
|
if 'accToken' in kwargs:
|
|
accToken = kwargs['accToken']
|
|
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)
|
|
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)
|
|
except Exception as err:
|
|
return jsonify({"error": err}), 409
|
|
|
|
@user.route("/user/job", methods=['POST'])
|
|
@login_required(groups=[USER])
|
|
def _getJob(**kwargs):
|
|
try:
|
|
if 'accToken' in kwargs:
|
|
accToken = kwargs['accToken']
|
|
data = request.get_json()
|
|
date = datetime.utcfromtimestamp(int(data['date']))
|
|
test = userController.getWorker(date, username=accToken.user.uid)
|
|
if test == [None]:
|
|
job = False
|
|
else:
|
|
job = True
|
|
if job:
|
|
workers = userController.getWorker(date)
|
|
for worker in workers:
|
|
if worker['user']['uid'] == accToken.user.uid:
|
|
workers.remove(worker)
|
|
return jsonify({'job': job, 'workers': workers})
|
|
return jsonify({'job': job})
|
|
except Exception as err:
|
|
traceback.print_exc()
|
|
return jsonify({"error": str(err)}), 409 |