def get(self): """Use this endpoint to get all the tasks""" # tasks=TaskModel.fetch_all() user_id = get_jwt_identity() user = UserModel.get_userby_id(user_id) user_tasks = user.tasks return tasks_schema.dump(user_tasks), 200
def cancel_account(): """ user can cancel their account, if get this api their token will be added into blacklist. once token has been added into blacklist, user's account will be deleted from database :return: """ if request.json: try: #添加用户的去重 name = request.json.get('name',None) get_user = User.query.filter_by(name=name).first() if not get_user: return http_response(250, 'bad', 'user not exist') try: current_user = get_jwt_identity() if current_user == get_user.name: try: db.session.delete(get_user) db.session.commit() except: db.session.rollback() jti = get_raw_jwt()['jti'] blacklist.add(jti) except Exception: return http_response(250, 'bad', 'user cancel failed') # pass except Exception as e: print(e.args) return http_response(250, 'bad', 'user cancel failed') return http_response(460,'ok','user canceled, thanks for using pan') else: return http_response(250, 'bad', 'json data required')
def post(cls): """ Creates a new task for allocation """ user = get_jwt_identity() data = request.json data['from_employ'] = user['_id'] data['from_employ_role'] = user['role'] data['to_employ_role'] = '' data['to_employ'] = '' data['status'] = 'bookkeeper_pending' data['note'] = 'task_initiated' data['active'] = True if user['role'] in ['operator', 'bookkeeper', 'administrator']: if Task.check_task(data): if Task.create(data): Task.update_timetrack(data, data) msg = "Successful" LOG.info('Task Allocation : %s', msg) return {"msg": msg} else: msg = 'Server Error' LOG.info('Message : %s', msg) return {"msg": msg} else: msg = "Claim is already under progress" LOG.info('Result : %s', msg) return {"msg": msg} else: msg = "Permission Denied" LOG.info('WARNING : %s', msg) return {"msg": msg}
def lookup(): my_email = app.get_jwt_identity()["email"] user_object = db_auth.User.objects(email=my_email).first() friends = user_object.friends response = OrderedDict() response["success"] = True response["length"] = len(friends) response["friends"] = [] for friend in friends: friend_object = db_auth.User.objects(email=friend).first() response["friends"].append({ "name": friend_object.name, "profile": friend_object.profile, "weight": friend_object.weight, "goal_weight": friend_object.goal_weight, "now_weight": friend_object.now_weight, "percentage": (float(friend_object.weight) - float(friend_object.now_weight)) / (float(friend_object.weight) - float(friend_object.goal_weight)) * 100.0 }) return jsonify(response), 200
def add(): email = app.get_jwt_identity()["email"] date = request.form["date"] type = request.form["type"] # breakfast, lunch, dinner food_id = request.form["food_id"] user_object = User.objects(email=email).first() meal_object = Food.objects(Q(date=date) & Q(user_id=user_object.pk)) if len(meal_object) == 0: if type == "breakfast": Food(date=date, user_id=user_object.pk, breakfast=[food_id]).save() elif type == "lunch": Food(date=date, user_id=user_object.pk, lunch=[food_id]).save() elif type == "dinner": Food(date=date, user_id=user_object.pk, dinner=[food_id]).save() else: meal_object = Food.objects( Q(date=date) & Q(user_id=user_object.pk)).first() if type == "breakfast": meal_object.breakfast.append(food_id).save() elif type == "lunch": meal_object.lunch.append(food_id).save() elif type == "dinner": meal_object.dinner.append(food_id).save() return jsonify({ "success": True, "msg": "Meal Add successfully!!" }), 200
def get(cls): """Show the work status of all users""" user = get_jwt_identity() if user['role'] == 'operator': return jsonify(Task.staff_status()) if user['role'] == 'administrator': status = jsonify(Task.staff_status(operator=True)) return status
def put(cls, _id): """To accept tasks allocated to the user""" user = get_jwt_identity() #body = request.json if user['role'] in ['bookkeeper', 'accountant']: master_data = Task.get_task(_id) if master_data != None: data = master_data['status_track'][-1] data['time_taken'] = 0 data['status_time'] = datetime.datetime.utcnow().isoformat() if user['role'] == 'bookkeeper' and data['status'] in [ 'bookkeeper_pending', 'bookkeeper_hold', 'accountant_revert' ]: c_id = master_data['c_id'] c_type = master_data['c_type'] c_name = master_data['c_name'] data['status'] = "bookkeeper_inreview" data['note'] = "Accepted by bookkeeper" data['from_employ_role'] = master_data['from_employ_role'] data['from_employ'] = master_data['from_employ'] data['to_employ_role'] = user['role'] data['to_employ'] = user['_id'] elif user['role'] == 'accountant' and data['status'] in [ 'accountant_pending', 'accountant_hold' ]: c_id = master_data['c_id'] c_type = master_data['c_type'] c_name = master_data['c_name'] data['status'] = "accountant_inreview" data['from_employ_role'] = master_data['from_employ_role'] data['from_employ'] = master_data['from_employ'] else: msg = "Out of scope error" LOG.info('msg: %s', str(_id) + " " + msg) return {"msg": msg} if Task.update_status(_id, data): Task.update_timetrack(data, master_data) msg = "Successful" LOG.info('msg: %s', str(_id) + " " + msg) return {"msg": msg} else: msg = "server error" LOG.info('msg: %s', str(_id) + " " + msg) return {"msg": msg} else: msg = "Task doesn't exists" LOG.info('msg: %s', str(_id) + " " + msg) return {"msg": msg} else: msg = "unauthorized" LOG.info('msg: %s', str(_id) + " " + msg) return {"msg": msg}
def get(): email = app.get_jwt_identity()["email"] date = request.form["date"] user_object = User.objects(email=email).first() weight_object = Weight.objects( Q(date=date) & Q(user_id=user_object.pk)).first() return jsonify({"success": True, "weight": weight_object.weight}), 200
def set(self): flavor = eval(request.form['flavor']) phone = app.get_jwt_identity()["email"] user_object = db_auth.User.objects(email=phone).first() user_object.flavor = flavor user_object.save() return jsonify({"success": True, "msg": "successful set food flavor"})
def put(cls): """ To refresh the current user access token """ current_user = get_jwt_identity() resp = Auth.create_token(current_user['_id'], current_user['role'], fresh=False) access_token = resp['access_token'] resp = jsonify(resp) LOG.info('Access Token refreshed for %s', str(data['_id'])) return jsonify({'access_token': access_token})
def get(cls): user = get_jwt_identity() _id = user['_id'] """Fetch staff info given its identifier""" staff_obj = Staff.get_staff(_id) if staff_obj: msg = "Staff details successfully displayed" LOG.info('msg: %s', str(_id) + ' ' + msg) return staff_obj else: msg = "Staff not found" LOG.info('msg: %s', str(_id) + ' ' + msg) return {'msg': msg}
def post(self): """Use this end point to add a new task""" # data["id"]=len(tasks)+1 # tasks.append(data) # return data ,201 data = api.payload task = TaskModel( title=data["title"], description=data["description"], user_id=get_jwt_identity()) #to get the id of the logged on person task.save_toDB() return task_schema.dump(task), 201
def get(cls): """List all task initiated""" user = get_jwt_identity() if user['role'] in ['operator', 'administrator']: obj = Task.get_tasks() tasks = [] for doc in obj: tasks.append(doc) return tasks else: obj = Task.get_pending_tasks() tasks = [] for doc in obj: tasks.append(doc) return tasks
def get(cls): """ List all staff registered """ user = get_jwt_identity() print(user) if user['role'] == 'administrator': msg = "Staff details viewed successfully" LOG.info('msg : %s', msg) l = Staff.get_staffs() # print("rossum") # for i in l: # i['created_at'] = dateutil.parser.parse(i['created_at']).isoformat() return l else: msg = 'Access Denied' LOG.info(msg + '{} {} tried to access Staff details. '.format( user['role'], user['_id'])) return {"msg": msg}
def add(): favorite = str(request.form['favorite']).split(',') email = app.get_jwt_identity()["email"] user_object = User.objects(email=email).first() favorite_object = Favorite.objects(user_id=user_object.pk) if len(favorite_object) == 0: Favorite( user_id=user_object.pk, food=favorite ).save() else: favorite_object = Favorite.objects(user_id=user_object.pk).first() favorite_object.food = favorite_object.food + favorite favorite_object.save() return jsonify({ "success": True, "msg": "add my favorite food successfully" }), 200
def add(): my_email = app.get_jwt_identity()["email"] add_email = str(request.form['email']) user_object = db_auth.User.objects(email=my_email) if len(user_object) == 0: return Error.invalid_input() else: add_object = db_auth.User.objects(email=add_email) if len(add_object) == 0: return jsonify({ "success": False, "msg": "fail to find added user" }) else: user_object = user_object.first() user_object.friends.append(add_email) user_object.save() return jsonify({ "success": True, "msg": "add new friend at list" }), 200
def add(): email = app.get_jwt_identity()["email"] date = request.form["date"] weight = request.form["weight"] user_object = User.objects(email=email).first() weight_object = Weight.objects( Q(date=date) & Q(user_id=user_object.pk)) if len(weight_object) == 0: Weight(date=date, user_id=user_object.pk, weight=weight).save() else: weight_object = Weight.objects( Q(date=date) & Q(user_id=user_object.pk)).first() weight_object.weight = weight weight_object.save() user_object.now_weight = weight user_object.save() return jsonify({ "success": True, "msg": "refresh or add your daily weight successfully!!" }), 200
def get(): email = app.get_jwt_identity()["email"] date = request.form["date"] user_object = User.objects(email=email).first() meal_object = Food.objects(Q(date=date) & Q(user_id=user_object.pk)) if len(meal_object) == 0: return jsonify({ "success": True, "breakfast": [], "lunch": [], "dinner": [] }), 200 else: meal_object = Food.objects( Q(date=date) & Q(user_id=user_object.pk)).first() return jsonify({ "success": True, "breakfast": meal_object.breakfast, "lunch": meal_object.lunch, "dinner": meal_object.dinner }), 200
def get(self): '''Get a List of REsources by acertain user''' user_id = get_jwt_identity() user = UserModel.fetch_by_id(user_id) tasks = user.tasks return tasks_schema.dump(tasks)
def put(cls): """For Hold | Revert | Submit operations of allocated tasks""" user = get_jwt_identity() body = request.json _id = body['_id'] body.pop('_id') if user['role'] in ['bookkeeper', 'accountant']: master_data = Task.get_task(_id) master_data['time_taken'] = body[ 'time_taken'] ## if model|method modified do changes accordingly if master_data != None: data = master_data['status_track'][-1] data['status_time'] = datetime.datetime.utcnow().isoformat() data['note'] = body['note'] data['from_employ_role'] = user['role'] data['from_employ'] = user['_id'] data['to_employ_role'] = "" data['to_employ'] = "" if user['role'] == 'bookkeeper' and data[ 'status'] == 'bookkeeper_inreview': if body['submit_flag'] == 'ok': data['status'] = "accountant_pending" data['to_employ_role'] = 'accountant' data['time_taken'] = body['time_taken'] c_id = master_data['c_id'] c_type = master_data['c_type'] p_accountant = Task.preferred(c_id, c_type) if p_accountant: accountant = p_accountant else: accountant = random.choice(Task.auto_allot( )) ## for auto allocation of accountant data['to_employ'] = accountant['_id'] elif body['submit_flag'] == 'hold': data['status'] = "bookkeeper_hold" data['to_employ_role'] = user['role'] data['to_employ'] = user['_id'] data['time_taken'] = body['time_taken'] else: msg = "cannot be reverted" LOG.info('msg: %s', str(_id) + " " + msg) return {"msg": msg} elif user['role'] == 'accountant' and data[ 'status'] == 'accountant_inreview': if body['submit_flag'] == 'ok': data['status'] = "finished" elif body['submit_flag'] == 'hold': data['status'] = "accountant_hold" data['to_employ_role'] = user['role'] data['to_employ'] = user['_id'] else: data['status'] = "accountant_revert" data1 = master_data['status_track'][0] data['to_employ_role'] = data1['to_employ_role'] data['to_employ'] = data1['to_employ'] else: msg = "Out of scope error" LOG.info('msg: %s', str(_id) + " " + msg) return {"msg": msg} if Task.update_status(_id, data): Task.update_timetrack(data, master_data) msg = "Successful" LOG.info('msg: %s', str(_id) + " " + msg) return {"msg": msg} else: msg = "server error" LOG.info('msg: %s', str(_id) + " " + msg) return {"msg": msg} else: msg = "Task doesn't exists" LOG.info('msg: %s', str(_id) + " " + msg) return {"msg": msg} else: msg = "unauthorized" LOG.info('msg: %s', str(_id) + " " + msg) return {"msg": msg}
def get(cls): """Show the work status of user after login""" user = get_jwt_identity() return Task.work_status(user['_id'])
def post(self): ''''POst a task to the list of tasks by a certain user''' data = api.payload task = TaskModel(**data, user_id=get_jwt_identity()) task.save_to_db() return task_schema.dump(task)