28 lines
735 B
Python
28 lines
735 B
Python
from .models import APILog
|
|
|
|
class APILogMiddleware:
|
|
def __init__(self, get_response):
|
|
self.get_response = get_response
|
|
|
|
def __call__(self, request):
|
|
if not request.path.startswith('/admin'):
|
|
|
|
user = request.user if request.user.is_authenticated else None
|
|
|
|
|
|
request_url = request.path
|
|
|
|
request_params = request.GET if request.GET else None
|
|
|
|
|
|
request_method = request.method
|
|
|
|
|
|
request_body = request.body.decode('utf-8')
|
|
|
|
|
|
APILog.objects.create(user=user, request_url=request_url, request_params=request_params, request_method=request_method, request_body=request_body)
|
|
|
|
response = self.get_response(request)
|
|
return response
|