api limiter & auto bp register

This commit is contained in:
h z
2024-12-03 11:28:40 +00:00
parent a93bd5d870
commit e929f67f4e
6 changed files with 62 additions and 24 deletions

View File

@@ -4,11 +4,12 @@ from flask import Blueprint, jsonify, request
from contexts.RequestContext import RequestContext
from db import get_db
from db.models.Resource import Resource
from api import require_auth
from api import require_auth, limiter
import logging
resource_bp = Blueprint('resource', __name__, url_prefix='/api/resource')
logger = logging.getLogger(__name__)
@resource_bp.route('/<identifier>', methods=['GET'])
@limiter.limit('10 per second')
def get_resource(identifier):
with get_db() as db:
resource = db.query(Resource).get(identifier)
@@ -20,6 +21,7 @@ def get_resource(identifier):
@resource_bp.route('/', methods=['POST'])
@require_auth(roles=["admin", "creator"])
@limiter.limit('20 per minute')
def create_resource():
data = request.get_json()
identifier = data.get('id')
@@ -41,6 +43,7 @@ def create_resource():
@resource_bp.route('/<identifier>', methods=['DELETE'])
@require_auth(roles=["admin"])
@limiter.limit('20 per minute')
def delete_resource(identifier):
with get_db() as db:
resource = db.query(Resource).get(identifier)