from flask import request from flask_accepts import accepts, responds from flask_restplus import Namespace, Resource from flask.wrappers import Response from typing import List from .schema import FizzbarSchema from .service import FizzbarService from .model import Fizzbar from .interface import FizzbarInterface api = Namespace("Fizzbar", description="A modular namespace within fizz") # noqa @api.route("/") class FizzbarResource(Resource): """Fizzbars""" @responds(schema=FizzbarSchema, many=True) def get(self) -> List[Fizzbar]: """Get all Fizzbars""" return FizzbarService.get_all() @accepts(schema=FizzbarSchema, api=api) @responds(schema=FizzbarSchema) def post(self) -> Fizzbar: """Create a Single Fizzbar""" return FizzbarService.create(request.parsed_obj) @api.route("/") @api.param("fizzbarId", "Fizzbar database ID") class FizzbarIdResource(Resource): @responds(schema=FizzbarSchema) def get(self, fizzbarId: int) -> Fizzbar: """Get Single Fizzbar""" return FizzbarService.get_by_id(fizzbarId) def delete(self, fizzbarId: int) -> Response: """Delete Single Fizzbar""" from flask import jsonify print("fizzbarId = ", fizzbarId) id = FizzbarService.delete_by_id(fizzbarId) return jsonify(dict(status="Success", id=id)) @accepts(schema=FizzbarSchema, api=api) @responds(schema=FizzbarSchema) def put(self, fizzbarId: int) -> Fizzbar: """Update Single Fizzbar""" changes: FizzbarInterface = request.parsed_obj Fizzbar = FizzbarService.get_by_id(fizzbarId) return FizzbarService.update(Fizzbar, changes)