def get(self, id): user = User.fetchone(id=id) userinfo = UserInfo.fetchone(user_id=id) return jsonify({ 'id': user.id, 'fullname': user.fullname, 'email': user.email, 'permission_groups': userinfo.permission_groups.value })
def patch(self, id): user = User.fetchone(id=id) userinfo = UserInfo.fetchone(user_id=id) user.email = request.get_json()['email'] user.fullname = request.get_json()['fullname'] password = request.get_json()['password'] if password is not None and len(password) > 0: user.hash = argon2.hash(request.get_json()['password']) userinfo.permission_groups = request.get_json()['permissionGroups'] try: user.save() userinfo.save() except UniqueViolatedError: # TODO: throw UniqueViolatedError in .save() method return jsonify(errors=["Duplicated email address"]), 409 return jsonify(message='ok')
def get_user_info(): """Get user_info from database then assign it to g.user""" if 'permission_groups' not in g.user: user_info = UserInfo.fetchone(user_id=g.user['id']) g.user['permission_groups'] = user_info.permission_groups.value