Files
mahssagebus-api/api/target_exchange/views.py
2021-09-30 23:00:46 +03:00

57 lines
1.5 KiB
Python

from flask import Blueprint
from flask_jwt_extended import jwt_required
from flask_apispec import use_kwargs, marshal_with
from api.exceptions import NotFoundException
from api.utils import docwrap
from .models import TargetExchange
from .serializers import target_exchange_schema, target_exchanges_schema
blueprint = Blueprint('target_exchange', __name__)
doc = docwrap('TargetExchange')
@doc
@blueprint.route('', methods=['GET'])
@jwt_required()
@marshal_with(target_exchanges_schema)
def get_list():
return TargetExchange.query.all()
@doc
@blueprint.route('', methods=['POST'])
@jwt_required()
@use_kwargs(target_exchange_schema)
@marshal_with(target_exchange_schema)
def create(name):
target_exchange = TargetExchange(name=name)
target_exchange.save()
return target_exchange
@doc
@blueprint.route('/<exchange_id>', methods=['GET'])
@jwt_required()
@marshal_with(target_exchange_schema)
def get_by_id(exchange_id):
target_exchange = TargetExchange.get_by_id(exchange_id)
if target_exchange is not None:
return target_exchange
else:
return NotFoundException(__name__)
@doc
@blueprint.route('/<exchange_id>', methods=['PUT'])
@jwt_required()
@use_kwargs(target_exchange_schema)
@marshal_with(target_exchange_schema)
def update(exchange_id, **kwargs):
target_exchange = TargetExchange.get_by_id(exchange_id)
if target_exchange is not None:
return target_exchange.update(**kwargs)
else:
return NotFoundException(__name__)