|
|
|
@ -1,13 +1,13 @@
|
|
|
|
|
import json
|
|
|
|
|
|
|
|
|
|
from apistar import Include, Route, http, Response, annotate
|
|
|
|
|
from apistar.frameworks.wsgi import WSGIApp as App
|
|
|
|
|
from apistar.handlers import docs_urls, static_urls
|
|
|
|
|
from apistar import Include, Route, annotate, http
|
|
|
|
|
from apistar.interfaces import Router
|
|
|
|
|
|
|
|
|
|
from apistar.backends import sqlalchemy_backend
|
|
|
|
|
from apistar.backends.sqlalchemy_backend import Session
|
|
|
|
|
|
|
|
|
|
from models import Base, Cookie
|
|
|
|
|
from model.util import alchemyencoder
|
|
|
|
|
from apistar.frameworks.wsgi import WSGIApp as App
|
|
|
|
|
from apistar.handlers import docs_urls, static_urls
|
|
|
|
|
from models.schema import Base, Cookie
|
|
|
|
|
from render import JSONRenderer
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -20,20 +20,46 @@ def welcome(name=None):
|
|
|
|
|
@annotate(renderers=[JSONRenderer()])
|
|
|
|
|
def get_cookies(session: Session):
|
|
|
|
|
cookies = session.query(Cookie).all()
|
|
|
|
|
result = [{"id": cookie.id,
|
|
|
|
|
"created_date": cookie.created_date,
|
|
|
|
|
"modified_date": cookie.modified_date,
|
|
|
|
|
"name": cookie.name,
|
|
|
|
|
"recipe_url": cookie.recipe_url,
|
|
|
|
|
"sku": cookie.sku,
|
|
|
|
|
"qoh": cookie.unit_cost}
|
|
|
|
|
for cookie in cookies]
|
|
|
|
|
# result = [{"id": cookie.id,
|
|
|
|
|
# "created_date": cookie.created_date,
|
|
|
|
|
# "modified_date": cookie.modified_date,
|
|
|
|
|
# "name": cookie.name,
|
|
|
|
|
# "recipe_url": cookie.recipe_url,
|
|
|
|
|
# "sku": cookie.sku,
|
|
|
|
|
# "qoh": cookie.qoh,
|
|
|
|
|
# "unit_cost": cookie.unit_cost}
|
|
|
|
|
# for cookie in cookies]
|
|
|
|
|
result = [cookie.to_dict() for cookie in cookies]
|
|
|
|
|
|
|
|
|
|
return result
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@annotate(renderers=[JSONRenderer()])
|
|
|
|
|
def get_cookie(session: Session, id):
|
|
|
|
|
cookie = session.query(Cookie).filter_by(id=id).one_or_none()
|
|
|
|
|
if cookie is None:
|
|
|
|
|
msg = {"error": "404 Not Found"}
|
|
|
|
|
return http.Response(msg, status=404)
|
|
|
|
|
return cookie.to_dict()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def create_cookie(session: Session, json_data: http.RequestData, route: Router):
|
|
|
|
|
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'])
|
|
|
|
|
session.add(cookie)
|
|
|
|
|
session.flush()
|
|
|
|
|
headers = {'Location': route.reverse_url('get_cookie', dict(id=cookie.id))}
|
|
|
|
|
return http.Response(cookie.to_dict(), status=201, headers=headers)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
routes = [
|
|
|
|
|
Route('/', 'GET', welcome),
|
|
|
|
|
Route('/cookies', 'GET', get_cookies),
|
|
|
|
|
Route('/cookies', 'POST', create_cookie),
|
|
|
|
|
Route('/cookies/{id}', 'GET', get_cookie),
|
|
|
|
|
Include('/docs', docs_urls),
|
|
|
|
|
Include('/static', static_urls)
|
|
|
|
|
]
|
|
|
|
@ -50,3 +76,7 @@ app = App(routes=routes,
|
|
|
|
|
commands=sqlalchemy_backend.commands,
|
|
|
|
|
components=sqlalchemy_backend.components
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if __name__ == "__main__":
|
|
|
|
|
app.main()
|