コード例 #1
0
def put_user():
    data = request.json or {}
    id = g.user.id
    data['id'] = id
    form = UserPutForm()
    form.validate_for_api()
    UserModel.put_user(id, data=data)
    return Success(msg='修改个人信息成功!')
コード例 #2
0
def get_score_of_specific_users(username):
    """获取某用户的成绩情况

    :param username: 用户邮箱
    :return: 该用户的成绩情况
    """
    current_app.logger.info('get_score_of_specific_users   ' + username)

    if '@' in username:
        # 邮箱登录
        email = username
        if not validate_email(email):
            return jsonify(errors.Params_error)
        if ScoreConfig.DEFAULT_USER_EMAIL in username:
            # 默认邮箱,通过主键查询
            user_object_id = username[:-16]
            all_answers = AnalysisModel.objects(
                user=user_object_id).order_by('date')
        else:
            # 真实邮箱
            cur_user = UserModel.objects(email=username).first()
            if not cur_user:
                return jsonify(errors.Score_criteria_not_exist)
            all_answers = AnalysisModel.objects(user=cur_user['id']).\
                fields(voice_features=0, key_hits=0, detail_hits=0).order_by('date')
    else:
        # 手机号登录
        cur_user = UserModel.objects(phone=username).first()
        if not cur_user:
            return jsonify(errors.Score_criteria_not_exist)
        all_answers = AnalysisModel.objects(user=cur_user['id']). \
            fields(voice_features=0, key_hits=0, detail_hits=0).order_by('date')

    if len(all_answers) == 0:
        return jsonify(errors.Score_no_data)

    date_mapper = DateMapper()
    result_by_date = __generate_result_from_dict(
        date_mapper.map_answers(all_answers), 'date')

    question_id_mapper = QuestionNumMapper()
    result_by_qid = __generate_result_from_dict(
        question_id_mapper.map_answers(all_answers), 'questionId')
    # 按照 q_id 排序
    result_by_qid.sort(key=__sort_by_question_id)

    result_all = []
    for answer in result_by_qid:
        result_all.append({
            'questionId': answer['questionId'],
            'totalScore': answer['totalScore']
        })

    return jsonify(
        errors.success({
            'resultByDate': result_by_date,
            'allResult': result_all
        }))
コード例 #3
0
 def _handle_regular_user(self, data):
     session_model = Session()
     session_id = g.get("session_id", None)
     model = UserModel(session_id)
     user = model.create(data)
     if user:
         session_model.update(session_id, user_id=user.id)
         return user
     return None
コード例 #4
0
ファイル: user.py プロジェクト: julioct99/flask-test-2
    def post(self):
        data = UserRegister.parser.parse_args()

        if UserModel.find_by_username(data["username"]):
            return {"message": "Error: username already exists"}, 409

        user = UserModel(**data)
        user.save()
        return {"message": "User registered successfully"}, 201
コード例 #5
0
ファイル: user.py プロジェクト: mcptr/bbone-js-py
    def validate_username(self, data):
        username = data.get("username")
        if username and len(username) < 2:
            raise ValidationError(
                "Username must be at least 2 characters long", "username")

        model = UserModel(None)
        if not data.get("social_uid") and model.username_exists(username):
            raise ValidationError("Username already taken", "username")
コード例 #6
0
    def post(self):
        data = UserRegister.parser.parse_args()

        if UserModel.find_by_username(data['username']):
            return {'message': 'This username already exists'}, 400

        user = UserModel(**data)
        user.save_to_db()

        return {'message': 'User created successfully'}, 201
コード例 #7
0
    def post(self):
        data = UserRegister.parser.parse_args()

        if UserModel.find_by_username(data['username']):
            return {"message": "User with that username already exists."}, 400

        user = UserModel(**data)  ## unpack the data, because its a dictionary
        user.save_to_db()

        return {"message": "User created successfully."}, 201
コード例 #8
0
def create_tables():
    db.create_all()
    db.session.commit()
    from app.models.user import UserModel
    if not UserModel.find_by_username("admin"):
        UserModel(username="******",
                  password="******",
                  firstName="admin",
                  lastName="admin",
                  phoneNumber="123467890").save_to_db()
コード例 #9
0
 def put(cls, user_id):
     data = request.get_json()
     create_error = UserSchema().validate(data)
     update_error = UserUpdateSchema().validate(data)
     if update_error:
         return {'message': update_error}, 400
     if data.get('password', None):
         data['password'] = bcrypt.generate_password_hash(
             data['password'], 10)
     user_by_id = UserModel.get_by_id(user_id)
     if user_by_id:
         try:
             UserModel.update_by_id(user_id, data)
             return {'message': 'user was updated'}, 200
         except IntegrityError as err:
             return {'message': err.args}, 400
     if create_error:
         return {'message': create_error}, 400
     user = UserModel(**data)
     if UserModel.get_by_email(user.email):
         return {
             'message': f'User with email {user.email} already exist'
         }, 400
     user.password = bcrypt.generate_password_hash(user.password)
     user.save()
     return {'message': 'User was created'}, 201
コード例 #10
0
ファイル: user.py プロジェクト: gr13/RecommendSystem
    def post(self):
        data = _user_parser.parse_args()
        if UserModel.find_by_email(data['email']):
            return {
                'message': 'A user with that username already exists.'
            }, 400

        user = UserModel(data['email'], data['password'])
        user.save_to_db()

        return {"message": "User created successfully."}, 201
コード例 #11
0
def register(data):
    """A new user sends username & password to register."""

    # check if username exists
    if UserModel.query.filter_by(username=data['username']).first():
        raise BadRequest('Username existed.')

    # save user's data & response a successful message
    user = UserModel(**data)
    user.save_to_db()
    return jsonify(UserSchema(exclude=("password",)).dump(user)), 201
コード例 #12
0
ファイル: signup.py プロジェクト: callsign-viper/LOM-PlanA
    def post(self):
        payload = request.json
        id = payload['id']
        pw = payload['pw']
        email = payload['email']
        name = payload['name']
        nickname = payload.get('nickname')
        bio = payload.get('bio')

        UserModel.signup(id, pw, email, name, nickname, bio)

        return Response('', 201)
コード例 #13
0
    def post(self):
        data = UserRegister.parser.parse_args()

        if UserModel.find_by_username(data['username']):
            return {
                'message': 'UserModel has already been created, aborting.'
            }, 400

        user = UserModel(**data)
        user.save_to_db()

        return {'message': 'user has been created successfully.'}, 201
コード例 #14
0
 def get(self):
     user = UserModel.find_by_id(current_identity.id)
     if not user:
         abort(500, message="Some internal user fault.")
     employees = EmployeeModel.query.all()
     res = {"employees": []}
     if len(employees) == 0:
         return res, 200
     for employee in employees:
         user = UserModel.find_by_id(employee.user_id)
         res["employees"].append(employee.get_employee(user))
     return res, 200
コード例 #15
0
ファイル: user.py プロジェクト: JoMingyu/BookCheck-Backend
    def post(self):
        """
        일반 사용자 회원가입
        """
        id = request.form['id']
        pw = request.form['pw']

        if UserModel.objects(id=id):
            return Response('', 204)

        UserModel(id=id, pw=pw).save()

        return Response('', 201)
コード例 #16
0
def get_user_list():
    data = request.args or {}
    form = UserGetListForm(data=data)
    form.validate_for_api()
    page = form.page.data
    size = form.size.data
    userName = data['userName'] or ''
    schoolId = data['schoolId'] or ''
    classroom = data['classroom'] or ''
    if classroom != '':
        try:
            classroom = ObjectId(classroom)
        except:
            return FormValidateError(msg='班级id有误')
        cls = ClassModel.objects(id=classroom).first()
        if cls is None:
            return FormValidateError(msg='班级id有误')
        count = UserModel.objects(name__contains=userName,
                                  schoolId__contains=schoolId,
                                  classId=cls).count()
        users = UserModel.objects(
            name__contains=userName, schoolId__contains=schoolId,
            classId=cls).order_by('classId', 'schoolId').skip(
                (int(page) - 1) * int(size)).limit(int(size))
    else:
        count = UserModel.objects(name__contains=userName,
                                  schoolId__contains=schoolId).count()
        users = UserModel.objects(
            name__contains=userName,
            schoolId__contains=schoolId).order_by('classId', 'schoolId').skip(
                (int(page) - 1) * int(size)).limit(int(size))

    list = []
    for user in users:
        list.append({
            'id': str(user['id']),
            'name': user['name'],
            'classId': str(user['classId']['id']),
            'classname': str(user['classId']['name']),
            'schoolId': user['schoolId'],
            'avatar': user['avatar']
        })
    data = {
        'pagination': {
            'count': count,
            'size': int(size),
            'page': int(page)
        },
        'list': list
    }
    return Success(msg='获取成功!', data=data)
コード例 #17
0
    def post(self):

        req_data = {}
        req_data['username'] = request.values.get('username', None)
        req_data['password'] = request.values.get('password', None)

        print('\nff' * 5, req_data, '\n**' * 5)

        get_user = UserModel.find_username(_username=req_data['username'])

        if get_user:
            user = get_user.first()
            print(user.is_admin, '**********\n\n')
            if user.check_password(password=req_data['password']):

                token = Auth.generate_token(user.username)
                message = {'Token': token}
                return jsonify(message)
            else:
                message = {'MSG': "wrong password!"}
                return jsonify(message)

        admin = request.values.get('admin', None)

        if admin == 'yes':
            new_user = UserModel.create_admin(username=req_data['username'],
                                              password=req_data['password'])
        else:
            new_user = UserModel.create_user(username=req_data['username'],
                                             password=req_data['password'])

        try:
            new_user.save()

        except Exception as e:

            logging.error('Error! {}'.format(e))
            return jsonify({"Error": e})

        print(new_user.items())
        token = Auth.generate_token(new_user.username)

        print('\n\n', token)

        retJson = {
            "jwt_token": token,
            "status": 201,
        }

        return jsonify(retJson)
コード例 #18
0
    def put(self, username):
        data = UserInfo.parser.parse_args()

        user = UserModel.find_by_username(username)

        if user:
            if data['password']:
                data['password'] = UserModel.get_password_hash(
                    data['password'])
                user.password = data['password']
            if data['first_name']:
                user.first_name = data['first_name']
            if data['last_name']:
                user.last_name = data['last_name']
            if data['active']:
                user.active = data['active']
        else:
            if data['password']:
                data['password'] = UserModel.get_password_hash(
                    data['password'])
            user = UserModel(username, data['password'], data['first_name'],
                             data['last_name'], data['active'])

        user.save_to_db()

        return user.json()
コード例 #19
0
def new_user():
    user_data = request.json
    schema = UserSchema()
    schema.load(user_data)
    user = UserModel(user_data['full_name'], user_data['username'],
                     user_data['password'], user_data['email'])
    user.save_to_db()
    return jsonify({
        'id': user.id,
        'username': user.username,
        'full_name': user.full_name,
        'password': user.password,
        'email': user.email
    }), 201
コード例 #20
0
ファイル: auth.py プロジェクト: return-capsule/backend
    def post(self):
        payload = request.json
        data = {
            "email": payload["email"],
            "password": payload["password"],
            "name": payload["name"]
        }
        user = UserModel.objects(email=request.json['email']).first()

        if user:
            abort(409)

        UserModel(**data).save()
        return "", 201
コード例 #21
0
    def post(self):
        data = User.parser.parse_args()
        first_name = data['first_name']
        last_name = data['last_name']
        email = data['email']
        password = data['password']
        if UserModel.find_by_email(email):
            return {
                'result': 'Email {} is already registered'.format(email)
            }, 400

        user = UserModel(userid=str(uuid.uuid1()),
                         first_name=first_name,
                         last_name=last_name,
                         email=email,
                         password=password)
        user.set_password()

        try:
            user.save_to_db()
            return user.json()
        except Exception as err:
            return {
                'result':
                'There was an error while registering your email {}'.format(
                    email)
            }, 500
コード例 #22
0
    def post(self, person_id):
        if UserModel.find_by_person_id(person_id):
            return {
                "message":
                gettext("person_id_already_exists").format(person_id)
            }, 400

        user = UserModel(person_id=person_id)
        try:
            user.save_to_db()
        except:
            return {"message": gettext("person_id_error_inserting")}, 500

        return user_schema.dump(user), 201
コード例 #23
0
    def post(self):
        self.parser.add_argument('username', type=not_empty_string, location="json", required=True)
        self.parser.add_argument('password', type=not_empty_string, location="json", required=True)
        args = self.parse_args()

        username = args.get('username')
        password = gen_md5(args.get('password'))
        user = UserModel.get_model_by_fields(username=username, password=password, deleted_at=0)
        if user is None:
            return res_json(code='invalid_auth_params')

        try:
            # 填写当前登录信息
            user.login_ip = get_client_ip(request)
            user.login_time = int(time.time())

            user_data = user.res_format(password=False, token_expires=False, deleted_at=False)

            # 更新 Api token
            new_token = gen_md5(str(uuid.uuid4()))
            UserRepository.update_user_token_by_model(user, new_token)

            user_data['api_token'] = genrate_jwt_token(new_token, current_app.config.get("SECRET_KEY"),
                                                       current_app.config.get("USER_VALIDITY"))
        except Exception as e:
            current_app.logger.error(e)
            return res_json(code='user_login_fail')

        return res_json(data=user_data)
コード例 #24
0
def login_by_google_callback():
    """Github OAuth 回调
    """
    code, state, info = OAuthSignIn.get_provider('google').callback()
    if code is None:
        return 'google 授权失败'

    if current_user.is_authenticated:
        if _get_user_oauth_state('google') != state:
            return '错误的用户,授权失败'

        user = UserModel.query.filter_by(google_id=info.get('id')).first()
        if user is not None and user.id != current_user.id:
            return ' google 帐户已经被绑定过了'

        current_user.google_id = info.get('id')
        current_user.google_email = info.get('email')
        current_user.google_name = info.get('name')

        db.session.commit()

        return '绑定成功'

    else:
        user = UserModel.query.filter_by(google_id=info.get('id')).first()
        if user is None:
            user = UserModel(
                google_id=info.get('id'),
                google_email=info.get('email'),
                google_name=info.get('name'),
            )
            db.session.add(user)
        _login_user(user)

        return '登录成功'
コード例 #25
0
ファイル: request_hooks.py プロジェクト: mcptr/bbone-js-py
def check_session(*args, **kwargs):
    from app.models.session import Session
    from app.models.user import UserModel
    g.user = None
    header = current_app.config.get("SESSION_HEADER")
    session_id = request.headers.get(header)
    session = Session()
    session_data = session.read(session_id)
    if session_data:
        g.user = UserModel(session_id)
        g.user.load()
    if request.endpoint in ["session", "status"]:
        pass
    elif request.method == "POST" and request.endpoint == "user":
        if not validate_session(session_id):
            abort(403)
    else:
        if not validate_session(session_id):
            abort(403)
        if request.method in ["POST", "PUT", "PATCH", "DELETE"]:
            if request.endpoint == "auth":
                pass
            elif not g.user or not g.user.get_id():
                print("Request denied (no auth)", request.endpoint)
                abort(403)
    g.session_id = session_id
コード例 #26
0
    def delete(self, uuid):
        user = UserModel.find_by_uuid(uuid)

        if user:
            return {"user": user_schema.dump(user)}, 200

        return {"message": "No user found"}, 404
コード例 #27
0
    def post(self):
        parser = reqparse.RequestParser()
        parser.add_argument('email', required=True)
        parser.add_argument('password', required=True)
        parser.add_argument('first_name')
        parser.add_argument('last_name')
        args = parser.parse_args()

        user = UserModel(email=args['email'],
                         password=args['password'],
                         first_name=args['first_name'],
                         last_name=args['last_name'])
        db.session.add(user)
        try:
            db.session.commit()
        except Exception as e:
            match = duplicate_pattern.search(e.message)
            if match:
                db.session.rollback()

                groups = {
                    'value': match.group('value'),
                    'filed': match.group('filed')
                }
                abort(409,
                      message="duplicate value '{value}' for key '{filed}'".
                      format(**groups),
                      **groups)

        _send_activate_email(user.email)

        return {'id': user.id}, 201
コード例 #28
0
ファイル: friend.py プロジェクト: TikiTaka-DSM/TikiTaka-Back
def search_friend_by_user_id(user_id):
    user = UserModel.get_user_data_by_user_id(user_id)

    if not user:
        abort(404, "This user id not found")

    return {"message": "I find that user!"}
コード例 #29
0
ファイル: events.py プロジェクト: IJaykkk/flask-aws
        def wrapped(*args, **kwargs):
            parser = RequestParser()
            parser.add_argument('class',
                                type=str,
                                help='This field cannot be blank',
                                required=True)

            g.data = data = parser.parse_args()

            # check if class is correct type
            if data['class'] not in ['people', 'landscape']:
                return {'message': 'class field should not be empty'}, 400

            # check if event exists
            g.event = event = EventModel.query.get(kwargs['event_id'])
            if not event:
                return {
                    'message':
                    'Event id {} does not exist'.format(kwargs['event_id'])
                }, 404

            # check if current_user has access to the group
            username = get_jwt_identity()
            g.current_user = current_user = UserModel.find_by_username(
                username)
            group = GroupModel.query.join(GroupModel.users).filter(
                UserModel.username == username,
                GroupModel.id == event.group.id).first()
            if not group:
                return {
                    'message':
                    'Group id {} does not exist'.format(kwargs['event_id'])
                }, 404

            return fn(*args, **kwargs)
コード例 #30
0
ファイル: timeline.py プロジェクト: callsign-viper/LOM-PlanA
    def get(self, id):
        user = UserModel.get_user_with_id(id)

        skip = int(request.args.get('skip', cp.post_list_default_skip))
        size = int(request.args.get('size', cp.post_list_default_size))

        return [post.json for post in PostModel.list(user, skip, size)]
コード例 #31
0
    def post(self):
        email = self.request.get('email')
        password = self.request.get('password')

        current_user = UserModel()

        if email and password:
            password = base64.b64encode(password)
            this_user = current_user.get_user(email)
            if this_user.password == password:
                user = {
                    'first_name': this_user.first_name,
                    'last_name': this_user.last_name,
                    'email': this_user.email,
                    'is_admin': this_user.is_admin,
                    'enterprise': this_user.enterprise,
                    'is_custom_user': this_user.is_custom_user,
                }
                self.session['user'] = user
                self.redirect('/')
            else:
                self.redirect('/login/')
        else:
            self.redirect('/login/')
コード例 #32
0
    def post(self):
        first_name = self.request.get('first_name')
        last_name = self.request.get('last_name')
        email = self.request.get('email')
        password1 = self.request.get('password1')
        password2 = self.request.get('password2')
        enterprise = self.request.get('enterprise')

        if password1 == password2:
            try:
	            new_user = UserModel()
	            new_user.first_name = first_name.lower()
	            new_user.last_name = last_name.lower()
	            new_user.email = email.lower()
	            new_user.password = base64.b64encode(password1)
	            new_user.enterprise = enterprise.lower()
	            new_user.put()
	            self.response.write("creado")
            except:
                self.response.write("Error")
        else:
            self.redirect('/admin/users/new')
コード例 #33
0
 def get(self):
     user = None
     user = self.session['user']
     first_name = self.request.get('first_name')
     last_name = self.request.get('last_name')
     if first_name and last_name:
         update_user = UserModel.get_user(user['email'])
         update_user.first_name = first_name
         update_user.last_name = last_name
         update_user.put()
         session_user = {
             'first_name': update_user.first_name,
             'last_name': update_user.last_name,
             'email': update_user.email,
             'is_admin': update_user.is_admin,
             'enterprise': update_user.enterprise,
             'is_custom_user': update_user.is_custom_user,
         }
         self.session['user'] = session_user
         self.response.write({'response': 'ok'})
     else:
         self.response.write({'response': 'fail'})
コード例 #34
0
 def get(self):
     user = None
     user = self.session['user']
     old_pass = self.request.get('old_pass')
     new_pass1 = self.request.get('new_pass1')
     new_pass2 = self.request.get('new_pass2')
     if old_pass and new_pass1 and new_pass2:
         update_user = UserModel.get_user(user['email'])
         update_user.first_name = first_name
         update_user.last_name = last_name
         update_user.put()
         session_user = {
             'first_name': update_user.first_name,
             'last_name': update_user.last_name,
             'email': update_user.email,
             'is_admin': update_user.is_admin,
             'enterprise': update_user.enterprise,
             'is_custom_user': update_user.is_custom_user,
         }
         self.session['user'] = session_user
         self.response.write({'response': 'ok'})
     else:
         self.response.write({'response': 'fail'})
コード例 #35
0
 def post(self):
     export_type = self.request.get("export_type")
     if export_type == "export_general_email":
         options = self.request.get("options")
         user_email = self.request.get("user_email")
         file_name = self.request.get("file_name")
         date_from = self.request.get("date_from")
         date_to = self.request.get("date_to")
         date_from = int(date_from, base=10)
         date_to = int(date_to, base=10)
         date_from = datetime.datetime.fromtimestamp(date_from)
         date_to = datetime.datetime.fromtimestamp(date_to)
         # Consulta
         data = EmailModel.get_all_emails_by_dates_async(date_from, date_to, options)
     elif export_type == "export_sended_email":
         options = self.request.get("options")
         user_email = self.request.get("user_email")
         file_name = self.request.get("file_name")
         date_from = self.request.get("date_from")
         date_to = self.request.get("date_to")
         date_from = int(date_from, base=10)
         date_to = int(date_to, base=10)
         date_from = datetime.datetime.fromtimestamp(date_from)
         date_to = datetime.datetime.fromtimestamp(date_to)
         # Consulta
         data = EmailModel.get_all_sended_emails_by_dates_async(date_from, date_to, options)
     elif export_type == "export_failure_email":
         options = self.request.get("options")
         user_email = self.request.get("user_email")
         file_name = self.request.get("file_name")
         date_from = self.request.get("date_from")
         date_to = self.request.get("date_to")
         date_from = int(date_from, base=10)
         date_to = int(date_to, base=10)
         date_from = datetime.datetime.fromtimestamp(date_from)
         date_to = datetime.datetime.fromtimestamp(date_to)
         # Consulta
         data = EmailModel.get_all_failure_emails_by_dates_async(date_from, date_to, options)
     elif export_type == "export_search_by_email":
         email = self.request.get("email")
         email = str(email).lower()
         user_email = self.request.get("user_email")
         file_name = self.request.get("file_name")
         date_from = self.request.get("date_from")
         date_to = self.request.get("date_to")
         date_from = int(date_from, base=10)
         date_to = int(date_to, base=10)
         date_from = datetime.datetime.fromtimestamp(date_from)
         date_to = datetime.datetime.fromtimestamp(date_to)
         # Consulta
         data = EmailModel.get_info_by_email_async(date_from, date_to, email)
     elif export_type == "export_search_by_folio":
         folio = self.request.get("folio")
         folio = str(folio).lower()
         user_email = self.request.get("user_email")
         file_name = self.request.get("file_name")
         # Consulta
         data = EmailModel.get_emails_by_folio_async(folio)
     elif export_type == "export_search_by_rut":
         rut = self.request.get("rut")
         rut = str(rut).upper()
         user_email = self.request.get("user_email")
         file_name = self.request.get("file_name")
         date_from = self.request.get("date_from")
         date_to = self.request.get("date_to")
         date_from = int(date_from, base=10)
         date_to = int(date_to, base=10)
         date_from = datetime.datetime.fromtimestamp(date_from)
         date_to = datetime.datetime.fromtimestamp(date_to)
         # Consulta
         data = EmailModel.get_emails_by_rut_receptor_async(date_from, date_to, rut)
     elif export_type == "export_search_by_failure":
         user_email = self.request.get("user_email")
         file_name = self.request.get("file_name")
         date_from = self.request.get("date_from")
         date_to = self.request.get("date_to")
         date_from = int(date_from, base=10)
         date_to = int(date_to, base=10)
         date_from = datetime.datetime.fromtimestamp(date_from)
         date_to = datetime.datetime.fromtimestamp(date_to)
         # Consulta
         data = EmailModel.get_all_failure_emails_by_dates_async(date_from, date_to)
     elif export_type == "export_search_by_mount":
         mount_from = self.request.get("mount_from")
         mount_to = self.request.get("mount_to")
         mount_from = int(mount_from, base=10)
         mount_to = int(mount_to, base=10)
         user_email = self.request.get("user_email")
         file_name = self.request.get("file_name")
         date_from = self.request.get("date_from")
         date_to = self.request.get("date_to")
         date_from = int(date_from, base=10)
         date_to = int(date_to, base=10)
         date_from = datetime.datetime.fromtimestamp(date_from)
         date_to = datetime.datetime.fromtimestamp(date_to)
         # Consulta
         data = EmailModel.get_emails_by_mount_async(date_from, date_to, mount_from, mount_to)
         # Creación del documento
     doc_export = create_tablib_async(data)
     # Buscar el objeto usuario
     user = UserModel.get_user(user_email)
     logging.info(user)
     # Proceso de correo
     mail = EmailClient()
     mail_report = {
         "email": user.email,
         "user_name": user.first_name,
         "subject": REPORT_SUBJECT_MAIL,
         "html": REPORT_HTML_MAIL.format(user_name=user.first_name),
         "attach": {"name": file_name, "file": doc_export.xlsx},
     }
     mail.send_mail_to_user_attach(mail_report)
コード例 #36
0
 def get(self):
     http = decorator.http()
     data = user_info_service.userinfo().get().execute(http=http)
     users = UserModel.query().fetch()
     self.response.write(json.dumps(users))