Ejemplo n.º 1
0
def author_create():
    schema = AuthorSchema()
    input_data = request.get_json() or {}
    data, errs = schema.load(input_data)
    if errs:
        return J(errs), 422
    id_ = len(db['authors'])
    author = Author(id=id_, **data)
    db['authors'].append(author)
    result = schema.dump(author)
    return J(result.data)
Ejemplo n.º 2
0
def echo_nested():
    args = {
        'name': fields.Nested({
            'first': fields.Str(),
            'last': fields.Str()
        })
    }
    return J(parser.parse(args))
Ejemplo n.º 3
0
def handle_error(err):
    if err.code == 422:
        assert isinstance(err.data["schema"], ma.Schema)

    if MARSHMALLOW_VERSION_INFO[0] >= 3:
        return J(err.data["messages"]), err.code

    # on marshmallow2, validation errors for nested schemas can fail to encode:
    # https://github.com/marshmallow-code/marshmallow/issues/493
    # to workaround this, convert integer keys to strings
    def tweak_data(value):
        if not isinstance(value, dict):
            return value
        return {str(k): v for k, v in value.items()}

    return J({k: tweak_data(v)
              for k, v in err.data["messages"].items()}), err.code
Ejemplo n.º 4
0
def echo_nested():
    args = {
        "name": fields.Nested({
            "first": fields.Str(),
            "last": fields.Str()
        })
    }
    return J(parser.parse(args))
Ejemplo n.º 5
0
def echo_nested_many():
    args = {
        'users':
        fields.Nested({
            'id': fields.Int(),
            'name': fields.Str()
        }, many=True)
    }
    return J(parser.parse(args))
Ejemplo n.º 6
0
def echo_nested_many():
    args = {
        "users":
        fields.Nested({
            "id": fields.Int(),
            "name": fields.Str()
        }, many=True)
    }
    return J(parser.parse(args))
Ejemplo n.º 7
0
def echo_nested_many_with_data_key():
    data_key_kwarg = {
        "load_from" if (MARSHMALLOW_VERSION_INFO[0] < 3) else "data_key":
        "X-Field"
    }
    args = {
        "x_field": fields.Nested({"id": fields.Int()},
                                 many=True,
                                 **data_key_kwarg)
    }
    return J(parser.parse(args))
Ejemplo n.º 8
0
def echo_nested_many_with_data_key():
    data_key_kwarg = {
        'load_from' if (MARSHMALLOW_VERSION_INFO[0] < 3) else 'data_key':
        'X-Field'
    }
    args = {
        'x_field': fields.Nested({'id': fields.Int()},
                                 many=True,
                                 **data_key_kwarg)
    }
    return J(parser.parse(args))
Ejemplo n.º 9
0
def multi_json():
    return J(parser.parse(hello_multiple))
Ejemplo n.º 10
0
def multi():
    return J(parser.parse(hello_multiple, location="query"))
Ejemplo n.º 11
0
def multi_form():
    return J(parser.parse(hello_multiple, location="form"))
Ejemplo n.º 12
0
 def post(self, args):
     return J(args)
Ejemplo n.º 13
0
def echo_use_kwargs(name):
    return J({"name": name})
Ejemplo n.º 14
0
def posts_comments(post_id):
    post = db['posts'][post_id - 1]
    comments = post.comments
    data, errs = CommentSchema(many=True).dump(comments)
    return J(data)
Ejemplo n.º 15
0
def author_detail(author_id):
    author = db['authors'][author_id - 1]
    data, errs = AuthorSchema().dump(author)
    return J(data)
Ejemplo n.º 16
0
def echo_view_arg(view_arg):
    return J(parser.parse({"view_arg": fields.Int()}, location="view_args"))
Ejemplo n.º 17
0
def echo_json_or_form():
    return J(parser.parse(hello_args, location="json_or_form"))
Ejemplo n.º 18
0
def echo():
    return J(parser.parse(hello_args, location="query"))
Ejemplo n.º 19
0
def echo_form():
    return J(parser.parse(hello_args, location="form"))
Ejemplo n.º 20
0
def handle_error(err):
    if err.code == 422:
        assert isinstance(err.data["schema"], ma.Schema)
    return J(err.data["messages"]), err.code
Ejemplo n.º 21
0
def echo_use_kwargs_missing(username, **kwargs):
    assert "password" not in kwargs
    return J({"username": username})
Ejemplo n.º 22
0
 def post(self, val):
     return J({"val": val})
Ejemplo n.º 23
0
def posts_list():
    posts = db['posts']
    data, errs = PostSchema(many=True).dump(posts)
    return J(data)
Ejemplo n.º 24
0
def echo_use_args(args):
    return J(args)
Ejemplo n.º 25
0
def posts_detail(post_id):
    post = db['posts'][post_id - 1]
    data, errs = PostSchema().dump(post)
    return J(data)
Ejemplo n.º 26
0
def echo_use_args_validated(args):
    return J(args)
Ejemplo n.º 27
0
def authors_list():
    author = db['authors']
    data, errs = AuthorSchema(many=True).dump(author)
    return J(data)
Ejemplo n.º 28
0
def echo_json_ignore_extra_data():
    return J(parser.parse(hello_exclude_schema))
Ejemplo n.º 29
0
def echo_json():
    return J(parser.parse(hello_args))
Ejemplo n.º 30
0
def echo_view_arg_with_use_args(args, **kwargs):
    return J(args)