def recipes(): if request.method == 'POST': try: data = request.json or request.form # print(data) image = request.files.get('image') serializer = RecipeSchema() recipe = serializer.load(data) recipe.owner_id = 1 recipe.image = save_file(image) recipe.save() return RecipeSchema().jsonify(recipe), HTTPStatus.CREATED except ValidationError as err: return jsonify(err.messages), HTTPStatus.BAD_REQUEST recipes = Recipe.query.filter_by(is_published=True) return RecipeSchema(many=True).jsonify(recipes), HTTPStatus.OK
def recipe(recipe_id): recipe = Recipe.query.filter_by(id=recipe_id).first() if not recipe: return jsonify({'message': 'Not found'}), HTTPStatus.NOT_FOUND if request.method == 'DELETE': recipe.delete() return jsonify({}), HTTPStatus.NO_CONTENT if request.method == 'GET': return RecipeSchema().jsonify(recipe), HTTPStatus.OK try: data = request.json or request.form image = request.files.get('image') serializer = RecipeSchema() if request.method == 'PUT': recipe_serializer = serializer.load(data, instance=recipe) elif request.method == 'PATCH': recipe_serializer = serializer.load(data, instance=recipe, partial=True) recipe.owner_id = get_jwt_identity() if image: recipe.image = save_file(image) recipe_serializer.save() return RecipeSchema().jsonify(recipe), HTTPStatus.OK except ValidationError as err: return jsonify(err.messages), HTTPStatus.BAD_REQUEST
def to_dict(self): from post_service.schemas.schmas import RecipeSchema return RecipeSchema().dumps(self)