add: api for rate control
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
#api/markdown.py
|
||||
from flask import Blueprint, request, jsonify
|
||||
|
||||
import api
|
||||
from api import require_auth
|
||||
from contexts.RequestContext import RequestContext
|
||||
from db import get_db
|
||||
@@ -12,14 +13,14 @@ logger = logging.getLogger(__name__)
|
||||
markdown_bp = Blueprint('markdown', __name__, url_prefix='/api/markdown')
|
||||
|
||||
@markdown_bp.route('/', methods=['GET'])
|
||||
@limiter.limit('5 per minute')
|
||||
@limiter.limit(api.get_rate_limit)
|
||||
def get_markdowns():
|
||||
with get_db() as session:
|
||||
mds = session.query(Markdown).all()
|
||||
return jsonify([md.to_dict() for md in mds]), 200
|
||||
|
||||
@markdown_bp.route('/by_path/<int:path_id>', methods=['GET'])
|
||||
@limiter.limit('5 per minute')
|
||||
@limiter.limit(api.get_rate_limit)
|
||||
def get_markdowns_by_path(path_id):
|
||||
with get_db() as session:
|
||||
markdowns = session.query(Markdown).filter(Markdown.path_id == path_id).all()
|
||||
@@ -28,7 +29,7 @@ def get_markdowns_by_path(path_id):
|
||||
|
||||
|
||||
@markdown_bp.route('/<int:markdown_id>', methods=['GET'])
|
||||
@limiter.limit('120 per minute')
|
||||
@limiter.limit(api.get_rate_limit)
|
||||
def get_markdown(markdown_id):
|
||||
with get_db() as session:
|
||||
markdown = session.query(Markdown).get(markdown_id)
|
||||
@@ -38,7 +39,7 @@ def get_markdown(markdown_id):
|
||||
|
||||
@markdown_bp.route('/', methods=['POST'])
|
||||
@require_auth(roles=['admin', 'creator'])
|
||||
@limiter.limit('20 per minute')
|
||||
@limiter.limit(api.get_rate_limit)
|
||||
def create_markdown():
|
||||
data = request.json
|
||||
title = data.get('title')
|
||||
@@ -60,7 +61,7 @@ def create_markdown():
|
||||
|
||||
@markdown_bp.route('/<int:markdown_id>', methods=['PUT'])
|
||||
@require_auth(roles=['admin', 'creator'])
|
||||
@limiter.limit('20 per minute')
|
||||
@limiter.limit(api.get_rate_limit)
|
||||
def update_markdown(markdown_id):
|
||||
with get_db() as session:
|
||||
markdown = session.query(Markdown).get(markdown_id)
|
||||
@@ -75,7 +76,7 @@ def update_markdown(markdown_id):
|
||||
|
||||
@markdown_bp.route('/<int:markdown_id>', methods=['DELETE'])
|
||||
@require_auth(roles=['admin'])
|
||||
@limiter.limit('20 per minute')
|
||||
@limiter.limit(api.get_rate_limit)
|
||||
def delete_markdown(markdown_id):
|
||||
with get_db() as session:
|
||||
markdown = session.query(Markdown).get(markdown_id)
|
||||
|
||||
Reference in New Issue
Block a user