[add]: enforce content type json
This commit is contained in:
@@ -1,2 +1,4 @@
|
||||
from .verify_api_key import require_api_key
|
||||
from .app_id_checker import require_app_id
|
||||
from .app_id_checker import require_app_id
|
||||
from .request_validator import validate_json
|
||||
from .cors import enforce_json
|
||||
@@ -1,9 +1,8 @@
|
||||
# app/middlewares/cors.py
|
||||
from flask import request
|
||||
from app.helpers.response_helper import ResponseHelper
|
||||
|
||||
def cors_headers(response):
|
||||
"""Allow cross-origin requests"""
|
||||
response.headers["Access-Control-Allow-Origin"] = "*"
|
||||
response.headers["Access-Control-Allow-Methods"] = "GET, POST, PUT, PATCH, DELETE"
|
||||
response.headers["Access-Control-Allow-Headers"] = "Authorization, Content-Type"
|
||||
return response
|
||||
|
||||
def enforce_json():
|
||||
"""Middleware to enforce JSON Content-Type for incoming requests"""
|
||||
if request.method in ["POST", "PUT", "PATCH"] and request.content_type != "application/json":
|
||||
return ResponseHelper.error( message="Content-Type must be application/json")
|
||||
|
||||
@@ -1,11 +1,16 @@
|
||||
# app/middlewares/request_validator.py
|
||||
from functools import wraps
|
||||
from flask import request
|
||||
from app.helpers.response_helper import ResponseHelper
|
||||
from app.utils.logger import logger
|
||||
|
||||
def validate_json():
|
||||
"""Ensure request has valid JSON"""
|
||||
if not request.is_json:
|
||||
return ResponseHelper.error(
|
||||
message="Request must be JSON",
|
||||
status_code=415
|
||||
)
|
||||
def validate_json(f):
|
||||
"""Decorator to ensure the request has a valid JSON body."""
|
||||
@wraps(f)
|
||||
def decorated_function(*args, **kwargs):
|
||||
if not request.is_json:
|
||||
logger.error("Invalid request: Request must be JSON.")
|
||||
return ResponseHelper.error(message="Request must be JSON", status_code=415)
|
||||
|
||||
return f(*args, **kwargs)
|
||||
|
||||
return decorated_function
|
||||
|
||||
Reference in New Issue
Block a user