コード例 #1
0
    def post(self):
        schema = UserSchema()
        user = schema.load(request.json)

        db.session.add(user)
        db.session.commit()

        return {"msg": "user created", "user": schema.dump(user)}, 201
コード例 #2
0
    def get(self, uid):
        schema = UserSchema()

        if not request.is_json:
            return jsonify({'msg': 'Missing JSON in request'}), 400

        user = Users.objects.get_or_404(id=uid)
        return schema.jsonify(user)
コード例 #3
0
    def put(self, user_id):
        schema = UserSchema(partial=True)
        user = User.query.get_or_404(user_id)
        user = schema.load(request.json, instance=user)

        db.session.commit()

        return {"msg": "user updated", "user": schema.dump(user)}
コード例 #4
0
 def get(self, user_id):
     schema = UserSchema()
     user = User.query.get(user_id)
     if user:
         ret = {"data": schema.dump(user.__dict__)}
         return  status_code.SUCCESS.set_data(schema.dump(user.__dict__)), 200
     else:
         return status_code.NOT_FOUND.d, 200
コード例 #5
0
def export_list():
    query = User.query
    schema = UserSchema(many=True)
    datas = query.all()
    is_or_not_map = common_fun.get_dict_map(const.IS_OR_NOT_DICT_KEY)
    for r in datas:
        r.is_caiyin = is_or_not_map.get(str(r.is_caiyin), r.is_caiyin)
    return status_code.SUCCESS.set_data(schema.dump(datas)).d, 200
コード例 #6
0
    def put(self, user_id):
        session = db.session
        schema = UserSchema(partial=True)
        user = User.query.get(user_id)
        user = schema.load(request.json, instance=user)
        session.merge(user)
        # session.flush()

        return status_code.SUCCESS.d, 200
コード例 #7
0
 def get(self):
     user = get_current_user()
     session = db.session
     session.refresh(user)
     # user.roles = [user.roles]
     schema = UserSchema(unknown=True)
     if user:
         return status_code.SUCCESS.set_data(schema.dump(user.__dict__)).d, 200
     else:
         return status_code.USER_NOT_FOUND.d, 200
コード例 #8
0
    def post(self):
        schema = UserSchema()

        user, errors = schema.load(request.json)
        if errors:
            return errors, 422

        user.save()

        return schema.jsonify(user)
コード例 #9
0
    def put(self, uid):
        schema = UserSchema(partial=True)

        if not request.is_json:
            return jsonify({'msg': 'Missing JSON in request'}), 400

        user = Users.objects.get_or_404(id=uid)

        user, errors = schema.load(request.json)
        if errors:
            return errors, 422

        user.save()
        return schema.jsonify(user)
コード例 #10
0
def test_dump_user(dummy_user):
    data = UserSchema().dump(dummy_user)

    assert data == {
        'id': str(dummy_user.id),
        'email_address': dummy_user.email_address,
        'verified': False
    }
コード例 #11
0
def test_invalid_password_length():
    data = {
        'email_address': '{{cookiecutter.test_email_address}}',
        'password': '******'
    }

    with pytest.raises(ValidationError) as validation_error:
        UserSchema().load(data)

    assert validation_error.value.messages == {
        'password': ["Shorter than minimum length 8."]
    }
コード例 #12
0
def signup():
    '''Authenticate user and return token
    '''
    if not request.is_json:
        return make_response(
            jsonify(msg='Missing JSON in request'), 400)
    schema = UserSchema()

    user, errors = schema.load(request.json)
    if errors:
        return jsonify(errors), 422
    try:
        user.passwd_digest = pwd_context.hash(user.passwd_digest)
        user.save()
    except NotUniqueError as e:
        return make_response(
            jsonify(msg='User exists with under that email/username'),
            422
        )

    return schema.jsonify(user)
コード例 #13
0
def test_load_user_email_already_exists(dummy_user):
    data = {
        'email_address': '{{cookiecutter.test_email_address}}',
        'password': '******'
    }
    save(dummy_user)

    with pytest.raises(ValidationError) as validation_error:
        UserSchema().load(data)

    assert validation_error.value.messages == {
        'email_address': ['A user with this email address already exists.']
    }
コード例 #14
0
    def get(self):
        schema = UserSchema(many=True)

        users = Users.objects()

        return paginate(users, schema)
コード例 #15
0
 def get(self, user_id):
     schema = UserSchema()
     user = User.query.filter_by(id=user_id).first_or_404()
     return schema.dump(user)
コード例 #16
0
 def post(self):
     schema = UserSchema(unknown=True)
     user = schema.load(request.json)
     db.session.add(user)
     # db.session.flush()
     return status_code.SUCCESS.d, 200
コード例 #17
0
 def get(self):
     return UserSchema().dump(self.context)
コード例 #18
0
ファイル: auth.py プロジェクト: opatua/cookiecutter-flask-api
from flask import request
from flask_restful import Resource
from http import HTTPStatus
from marshmallow import ValidationError

from {{cookiecutter.app_name}}.libs.authentication import Auth
from {{cookiecutter.app_name}}.models import UserModel
from {{cookiecutter.app_name}}.schemas import UserSchema

user_schema = UserSchema()

REQUEST_NOT_VALID = 'Request not valid.'
USER_NOT_FOUND = 'User not found.'
USER_EXISTS = 'User exists.'
USER_INVALID_CREDENTIAL = 'Invalid credential.'


class Login(Resource):

    @classmethod
    def post(self):
        user_json = request.get_json()

        data, error = user_schema.load(user_json, partial=True)

        if error:
            return {'message': REQUEST_NOT_VALID}, HTTPStatus.BAD_REQUEST
        if not data.get('email') or not data.get('password'):
            return {'message': REQUEST_NOT_VALID}, HTTPStatus.BAD_REQUEST

        user = UserModel.query.filter_by(email=data.get('email')).first()
コード例 #19
0
 def put(self, user_id):
     schema = UserSchema(partial=True)
     user = User.query.filter_by(id=user_id).first_or_404()
     user = schema.load(request.json, instance=user)
     db.session.commit()
     return {"User updated": schema.dump(user)}
コード例 #20
0
ファイル: user.py プロジェクト: bigfang/horn
from sqlalchemy.exc import IntegrityError

from <%= app_name %>.core import jwt_required, doc, use_kwargs, marshal_with
from <%= app_name %>.core.database import db, atomic
from <%= app_name %>.models import User
from <%= app_name %>.schemas import UserSchema


bp = Blueprint('user', __name__)


@doc(tags=['User'], description='list users')
@bp.route('/users', methods=['GET'], provide_automatic_options=False)
@jwt_required
@marshal_with(UserSchema(many=True), code=200)
def index():
    users = User.query.all()
    return users


@doc(tags=['User'], description='create user')
@bp.route('/users', methods=['POST'], provide_automatic_options=False)
@use_kwargs(UserSchema)
@marshal_with(UserSchema, code=201)
def create(username, email, password):
    user = User.create(username=username, email=email, password=password)
    return user, 201


@doc(tags=['User'], description='show user')
コード例 #21
0
 def get(self, user_id):
     schema = UserSchema()
     user = User.query.get_or_404(user_id)
     return {"user": schema.dump(user)}
コード例 #22
0
 def post(self):
     schema = UserSchema(partial=True)
     user = schema.load(request.json)
     db.session.add(user)
     db.session.commit()
     return {"User created": schema.dump(user)}
コード例 #23
0
 def get(self):
     schema = UserSchema(many=True)
     query = User.query
     return paginate(query, schema)
コード例 #24
0
from sanic.exceptions import abort
from sanic.response import json as sanic_json
from sanic.views import HTTPMethodView

from asyncpg.exceptions import DataError
from marshmallow.exceptions import ValidationError

from {{cookiecutter.app_name}}.models.user import User
from {{cookiecutter.app_name}}.schemas.user import UserSchema

schema = UserSchema()


class UsersView(HTTPMethodView):
    # noinspection PyMethodMayBeStatic
    async def get(self, _):
        """ List of users. """
        users = await User.query.gino.all()
        return sanic_json([user.to_dict() for user in users], 200)

    # noinspection PyMethodMayBeStatic
    async def post(self, request):
        """ Create a new user. """
        user = {}
        try:
            data = schema.load(request.json)
            user = (await User.create(**data)).to_dict()
        except (ValidationError, DataError) as e:
            abort(400, message=e)

        return sanic_json(user, 201)
コード例 #25
0
 def get(self):
     schema = UserSchema(many=True)
     query = User.query
     data = {"data": paginate(query, schema)}
     return status_code.SUCCESS.set_data(paginate(query, schema)).d, 200