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 FizzbazSchema from .service import FizzbazService from .model import Fizzbaz from .interface import FizzbazInterface api = Namespace('Fizzbaz', description='A modular namespace within fizz') # noqa @api.route('/') class FizzbazResource(Resource): '''Fizzbazs''' @responds(schema=FizzbazSchema, many=True) def get(self) -> List[Fizzbaz]: '''Get all Fizzbazs''' return FizzbazService.get_all() @accepts(schema=FizzbazSchema, api=api) @responds(schema=FizzbazSchema) def post(self) -> Fizzbaz: '''Create a Single Fizzbaz''' return FizzbazService.create(request.parsed_obj) @api.route('/') @api.param('fizzbazId', 'Fizzbaz database ID') class FizzbazIdResource(Resource): @responds(schema=FizzbazSchema) def get(self, fizzbazId: int) -> Fizzbaz: '''Get Single Fizzbaz''' return FizzbazService.get_by_id(fizzbazId) def delete(self, fizzbazId: int) -> Response: '''Delete Single Fizzbaz''' from flask import jsonify id = FizzbazService.delete_by_id(fizzbazId) return jsonify(dict(status='Success', id=id)) @accepts(schema=FizzbazSchema, api=api) @responds(schema=FizzbazSchema) def put(self, fizzbazId: int) -> Fizzbaz: '''Update Single Fizzbaz''' changes: FizzbazInterface = request.parsed_obj Fizzbaz = FizzbazService.get_by_id(fizzbazId) return FizzbazService.update(Fizzbaz, changes)