This commit is contained in:
1
mealapi/resources/__init__.py
Normal file
1
mealapi/resources/__init__.py
Normal file
@ -0,0 +1 @@
|
||||
from .mealresource import MealBaseResource
|
28
mealapi/resources/mealresource.py
Normal file
28
mealapi/resources/mealresource.py
Normal file
@ -0,0 +1,28 @@
|
||||
#!/usr/bin/env python3
|
||||
from flask_restful import Resource
|
||||
from flask import request, current_app, abort
|
||||
from marshmallow import ValidationError
|
||||
|
||||
from ..model import db, Meal
|
||||
from ..schemas import MealSchema
|
||||
|
||||
|
||||
class MealBaseResource(Resource):
|
||||
|
||||
mealschema = MealSchema(many=False)
|
||||
mealschemas = MealSchema(many=True)
|
||||
|
||||
def post(self):
|
||||
body = request.get_json()
|
||||
|
||||
try:
|
||||
mealobj = self.mealschema.load(body)
|
||||
db.session.add(mealobj.data)
|
||||
db.session.commit()
|
||||
return '', 204
|
||||
except ValidationError:
|
||||
abort(406, "meal validation error")
|
||||
|
||||
def get(self):
|
||||
meals = Meal.query.all()
|
||||
return self.mealschemas.dump(list(meals)), 200
|
Reference in New Issue
Block a user