From ed324ec4e379730cb09414e0adf2a1bca694cfe6 Mon Sep 17 00:00:00 2001 From: androiddrew Date: Mon, 13 Nov 2017 15:24:11 -0500 Subject: [PATCH] Revert "Added Marshmallow validation to views" This reverts commit 4f3ee63 --- cookie_api/app.py | 53 +++++++++++++------------------------------- cookie_api/auth.py | 2 +- cookie_api/schema.py | 27 ++++++---------------- 3 files changed, 23 insertions(+), 59 deletions(-) diff --git a/cookie_api/app.py b/cookie_api/app.py index 0b9a768..be1d43c 100644 --- a/cookie_api/app.py +++ b/cookie_api/app.py @@ -13,7 +13,6 @@ from cookie_api.schema import CookieSchema cookie_schema = CookieSchema() - @annotate(authentication=[JWTAuthentication()]) def get_state(injector: Injector, auth: Auth): state = injector.state @@ -24,68 +23,46 @@ def get_state(injector: Injector, auth: Auth): def get_cookies(session: Session): - """Retrieves all Cookies""" cookies = session.query(Cookie).all() return cookie_schema.dump(cookies, many=True).data -def create_cookie(session: Session, json_data: http.RequestData, route: Router): - """Create a Cookie""" - cookie_data, errors = cookie_schema.load(json_data) - if errors: - msg = {"message": "400 Bad Request", "error": errors} - return http.Response(msg, status=400) - cookie = Cookie(**cookie_data) - session.add(cookie) - session.flush() - headers = {'Location': route.reverse_url('get_cookie', dict(id=cookie.id))} - return http.Response(cookie_schema.dump(cookie).data, status=201, headers=headers) - - def get_cookie(session: Session, id): - """Retrieve Cookie by id""" cookie = session.query(Cookie).filter_by(id=id).one_or_none() if cookie is None: - msg = {"message": "404 Not Found"} + msg = {"error": "404 Not Found"} return http.Response(msg, status=404) return cookie_schema.dump(cookie).data -def patch_cookie(session: Session, json_data: http.RequestData, id: int): - """Update Cookie through partial update""" - cookie = session.query(Cookie).filter_by(id=id).one_or_none() - if cookie is None: - msg = {"message": "404 Not Found"} - return http.Response(msg, status=404) - # run schema validation of fields - cookie_data, errors = cookie_schema.load(json_data, partial=True) - if errors: - msg = {"message": "400 Bad Request", "error": errors} - return http.Response(msg, status=400) - - for k, v in cookie_data.items(): - setattr(cookie, k, v) - session.flush() - return cookie_schema.dump(cookie).data +def create_cookie(session: Session, json_data: http.RequestData, route: Router): + cookie_data = cookie_schema.load(json_data) + + #cookie = Cookie(name=json_data['name'], + # recipe_url=json_data['recipe_url'], + # sku=json_data['sku'], + # qoh=json_data['qoh'], + # unit_cost=json_data['unit_cost']) + cookie = Cookie(**cookie_data) + session.add(cookie) + session.commit() + headers = {'Location': route.reverse_url('get_cookie', dict(id=cookie.id))} + return http.Response(cookie_schema.dump(cookie), status=201, headers=headers) def delete_cookie(session: Session, id: int): - """Delete a Cookie""" cookie = session.query(Cookie).filter_by(id=id).one_or_none() if cookie is None: - msg = {"message": "404 Not Found"} + msg = {"error": "404 Not Found"} return http.Response(msg, status=404) session.delete(cookie) return {"message": "200 OK"} - routes = [ Route('/state', 'GET', get_state), Route('/cookies', 'GET', get_cookies), Route('/cookies', 'POST', create_cookie), Route('/cookies/{id}', 'GET', get_cookie), - Route('/cookies/{id}', 'PATCH', patch_cookie), - Route('/cookies/{id}', 'DELETE', delete_cookie), Include('/docs', docs_urls), Include('/static', static_urls) ] diff --git a/cookie_api/auth.py b/cookie_api/auth.py index 672921f..5be12a7 100644 --- a/cookie_api/auth.py +++ b/cookie_api/auth.py @@ -14,7 +14,7 @@ from cookie_api.models import User auth_components = [ Component(JWT, init=get_jwt) ] - +[] # /auth/login def login(settings: Settings, json_data: http.RequestData, session: Session): diff --git a/cookie_api/schema.py b/cookie_api/schema.py index c6713a1..87c82e2 100644 --- a/cookie_api/schema.py +++ b/cookie_api/schema.py @@ -1,25 +1,12 @@ -from marshmallow import Schema, fields, ValidationError - - -def non_neg(value): - if not value >= 0: - raise ValidationError('Value cannot be negative') - - -def non_neg_non_zero(value): - if not value > 0: - raise ValidationError('Value cannot be negative or zero') +from marshmallow import Schema, fields class CookieSchema(Schema): - id = fields.Int(dump_only=True) - created_date = fields.DateTime(dump_only=True) + id = fields.Int() + created_date = fields.DateTime() modified_date = fields.DateTime() - name = fields.Str(required=True, error_messages={'required': "Cookie name is required"}) + name = fields.Str(required=True) recipe_url = fields.Str() - sku = fields.Str(required=True, error_messages={'required': "Cookie sku is required"}) - qoh = fields.Int(validate=non_neg, required=True, error_messages={'required': "Cookie qoh is required"}) - unit_cost = fields.Decimal(validate=non_neg_non_zero, required=True, error_messages={'required': "Cookie unit_cost is required"}) - - class Meta: - ordered = True + sku = fields.Str(required=True) + qoh = fields.Int(required=True) + unit_cost = fields.Decimal(required=True)