예제 #1
0
def new_user():
    json_data = {
        'username': request.form.get('username'), 
        'password': request.form.get('password')
        }
    if not json_data:
        return jsonify({'message': 'No input data provided'}), 400
    data = user_schema.load(json_data)

    username, password = data['username'], data['password']
    check_user_exists = User.query.filter_by(username=username).first()

    if check_user_exists is None:
        user = User(username=username)
        user.create_password_hash(password)
        db.session.add(user)
        db.session.commit()

        result = user_schema.dump(user)
        return jsonify(
            {
                'message': 'New user created',
                'user': result
            }
        )
예제 #2
0
def user_registration():
    username = request.json['username']
    mobile = request.json['mobile']
    entered_password = request.json['password']

    if User.find_by_username(username):
        return {'message': USER_ALREADY_EXISTS}, 400
    if User.find_by_mobile(mobile):
        return {'message': MOBILE_ALREADY_EXISTS}, 400

    try:
        db_password = hash_password(entered_password)
        new_user = User(username, mobile, db_password)
        User.save(new_user)

        result = user_schema.dump(new_user)

        data = {
            'message': SUCCESS_REGISTER_MESSAGE,
            'status': 201,
            'data': result
        }
        return make_response(jsonify(data))
    except:
        traceback.print_exc()
        return {'message': FAILED_TO_CREATE}, 500
예제 #3
0
def get_user(id):
    try:
        user = User.query.get(id)
    except IntegrityError:
        return jsonify(
            {
                'message': 'User could not be found'
            }
        ), 400

    user_result = user_schema.dump(user)

    return jsonify({'user': user_result})
예제 #4
0
def update_user(uuid):
    current_user = get_jwt_identity()
    if current_user:
        user = User.find_by_id(uuid)

        if user:
            try:
                if 'username' in request.json:
                    if User.find_by_username(request.json['username']):
                        return {'message': USER_ALREADY_EXISTS}, 400
                    user.username = request.json['username']

                if 'email' in request.json:
                    if User.find_by_username(request.json['email']):
                        return {'message': EMAIL_ALREADY_EXISTS}, 400
                    user.email = request.json['email']

                if 'mobile' in request.json:
                    if User.find_by_username(request.json['mobile']):
                        return {'message': MOBILE_ALREADY_EXISTS}, 400
                    user.mobile = request.json['mobile']

                if 'gender' in request.json:
                    user.gender = request.json['gender']
                if 'status' in request.json:
                    user.status = request.json['status']

                User.save(user)
                result = user_schema.dump(user)

                data = {
                    'message': SUCCESS_MESSAGE,
                    'status': 200,
                    'data': result
                }
                return make_response(jsonify(data))

            except:
                traceback.print_exc()
                return {'message': FAILED_TO_ACCESS}, 500

        return {'message': USER_NOT_FOUND}, 404

    return {'message': UNAUTHORIZED_ACCESS}, 401
예제 #5
0
def activate_account():
    if 'mobile' in request.json:
        user = User.find_by_mobile(request.json['mobile'])
        if user:
            try:
                user.status = True
                User.save(user)
                result = user_schema.dump(user)

                data = {
                    'message': SUCCESS_MESSAGE,
                    'status': 200,
                    'data': result
                }
                return make_response(jsonify(data))
            except:
                traceback.print_exc()
                return {'message': FAILED_TO_ACCESS}, 500

        return {'message': USER_NOT_FOUND}, 404
예제 #6
0
def user_detail(uuid):
    current_user = get_jwt_identity()
    if current_user:
        user = User.find_by_id(uuid)

        if user:
            try:
                result = user_schema.dump(user)
                data = {
                    'message': SUCCESS_MESSAGE,
                    'status': 200,
                    'data': result
                }
                return make_response(jsonify(data))
            except:
                traceback.print_exc()
                return {'message': FAILED_TO_ACCESS}, 500

        return {'message': USER_NOT_FOUND}, 404

    return {'message': UNAUTHORIZED_ACCESS}, 401
예제 #7
0
def get_user(id):
    user = User.query.get(id)
    if not user:
        abort(404)
    return jsonify(user_schema.dump(user).data)