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 DoodadSchema from .service import DoodadService from .model import Doodad from .interface import DoodadInterface api = Namespace('Doodad', description='A modular namespace within Other API') # noqa @api.route('/') class DoodadResource(Resource): '''Doodads''' @responds(schema=DoodadSchema, many=True) def get(self) -> List[Doodad]: '''Get all Doodads''' return DoodadService.get_all() @accepts(schema=DoodadSchema, api=api) @responds(schema=DoodadSchema) def post(self) -> Doodad: '''Create a Single Doodad''' return DoodadService.create(request.parsed_obj) @api.route('/') @api.param('doodadId', 'Doodad database ID') class DoodadIdResource(Resource): @responds(schema=DoodadSchema) def get(self, doodadId: int) -> Doodad: '''Get Single Doodad''' return DoodadService.get_by_id(doodadId) def delete(self, doodadId: int) -> Response: '''Delete Single Doodad''' from flask import jsonify print('doodadId = ', doodadId) id = DoodadService.delete_by_id(doodadId) return jsonify(dict(status='Success', id=id)) @accepts(schema=DoodadSchema, api=api) @responds(schema=DoodadSchema) def put(self, doodadId: int) -> Doodad: '''Update Single Doodad''' changes: DoodadInterface = request.parsed_obj Doodad = DoodadService.get_by_id(doodadId) return DoodadService.update(Doodad, changes)