mirror of
https://github.com/seanmorley15/AdventureLog.git
synced 2025-07-24 15:29:36 +02:00
refactor: Update API endpoint paths from "_allauth" to "auth" for consistency
This commit is contained in:
parent
d5311bb71e
commit
b1068d27b0
16 changed files with 56 additions and 202 deletions
|
@ -1,31 +1,6 @@
|
|||
class AppVersionMiddleware:
|
||||
def __init__(self, get_response):
|
||||
self.get_response = get_response
|
||||
|
||||
def __call__(self, request):
|
||||
# Process request (if needed)
|
||||
response = self.get_response(request)
|
||||
|
||||
# Add custom header to response
|
||||
# Replace with your app version
|
||||
response['X-AdventureLog-Version'] = '1.0.0'
|
||||
|
||||
return response
|
||||
|
||||
# make a middlewra that prints all of the request cookies
|
||||
class PrintCookiesMiddleware:
|
||||
def __init__(self, get_response):
|
||||
self.get_response = get_response
|
||||
|
||||
def __call__(self, request):
|
||||
print(request.COOKIES)
|
||||
response = self.get_response(request)
|
||||
return response
|
||||
|
||||
# middlewares.py
|
||||
|
||||
from django.conf import settings
|
||||
from django.utils.deprecation import MiddlewareMixin
|
||||
import os
|
||||
from django.http import HttpRequest
|
||||
|
||||
class OverrideHostMiddleware:
|
||||
def __init__(self, get_response):
|
||||
|
@ -44,3 +19,14 @@ class OverrideHostMiddleware:
|
|||
|
||||
response = self.get_response(request)
|
||||
return response
|
||||
|
||||
class XSessionTokenMiddleware(MiddlewareMixin):
|
||||
def process_request(self, request):
|
||||
session_token = request.headers.get('X-Session-Token')
|
||||
if session_token:
|
||||
request.COOKIES[settings.SESSION_COOKIE_NAME] = session_token
|
||||
|
||||
class DisableCSRFForSessionTokenMiddleware(MiddlewareMixin):
|
||||
def process_request(self, request):
|
||||
if 'X-Session-Token' in request.headers:
|
||||
setattr(request, '_dont_enforce_csrf_checks', True)
|
|
@ -133,35 +133,6 @@ class AdventureViewSet(viewsets.ModelViewSet):
|
|||
serializer = self.get_serializer(queryset, many=True)
|
||||
return Response(serializer.data)
|
||||
|
||||
@action(detail=False, methods=['get'])
|
||||
def search(self, request):
|
||||
query = request.query_params.get('query', '')
|
||||
property = request.query_params.get('property', 'all')
|
||||
|
||||
if len(query) < 2:
|
||||
return Response({"error": "Query must be at least 2 characters long"}, status=400)
|
||||
|
||||
valid_properties = ['name', 'location', 'description', 'activity_types']
|
||||
if property not in valid_properties:
|
||||
property = 'all'
|
||||
|
||||
filters = {
|
||||
'name': Q(name__icontains=query),
|
||||
'location': Q(location__icontains=query),
|
||||
'description': Q(description__icontains=query),
|
||||
'activity_types': Q(activity_types__icontains=query),
|
||||
'all': Q(name__icontains=query) | Q(description__icontains=query) |
|
||||
Q(location__icontains=query) | Q(activity_types__icontains=query)
|
||||
}
|
||||
|
||||
queryset = Adventure.objects.filter(
|
||||
filters[property] & (Q(user_id=request.user.id) | Q(is_public=True))
|
||||
)
|
||||
|
||||
queryset = self.apply_sorting(queryset)
|
||||
serializer = self.get_serializer(queryset, many=True)
|
||||
return Response(serializer.data)
|
||||
|
||||
def update(self, request, *args, **kwargs):
|
||||
instance = self.get_object()
|
||||
serializer = self.get_serializer(instance, data=request.data, partial=True)
|
||||
|
|
|
@ -69,6 +69,8 @@ INSTALLED_APPS = (
|
|||
|
||||
MIDDLEWARE = (
|
||||
'whitenoise.middleware.WhiteNoiseMiddleware',
|
||||
'adventures.middleware.XSessionTokenMiddleware',
|
||||
'adventures.middleware.DisableCSRFForSessionTokenMiddleware',
|
||||
'corsheaders.middleware.CorsMiddleware',
|
||||
'django.contrib.sessions.middleware.SessionMiddleware',
|
||||
'django.middleware.common.CommonMiddleware',
|
||||
|
@ -133,6 +135,8 @@ FRONTEND_URL = unParsedFrontenedUrl.translate(str.maketrans('', '', '\'"'))
|
|||
|
||||
SESSION_COOKIE_SAMESITE = 'Lax'
|
||||
|
||||
SESSION_COOKIE_NAME = 'sessionid'
|
||||
|
||||
SESSION_COOKIE_SECURE = FRONTEND_URL.startswith('https')
|
||||
|
||||
hostname = urlparse(FRONTEND_URL).hostname
|
||||
|
|
|
@ -15,7 +15,7 @@ schema_view = get_schema_view(
|
|||
urlpatterns = [
|
||||
path('api/', include('adventures.urls')),
|
||||
path('api/', include('worldtravel.urls')),
|
||||
path("_allauth/", include("allauth.headless.urls")),
|
||||
path("auth/", include("allauth.headless.urls")),
|
||||
|
||||
# Serve protected media files
|
||||
re_path(r'^media/(?P<path>.*)$', serve_protected_media, name='serve-protected-media'),
|
||||
|
|
|
@ -8,7 +8,7 @@ class UserAPITestCase(APITestCase):
|
|||
|
||||
def setUp(self):
|
||||
# Signup a new user
|
||||
response = self.client.post('/_allauth/browser/v1/auth/signup', {
|
||||
response = self.client.post('/auth/browser/v1/auth/signup', {
|
||||
'username': 'testuser',
|
||||
'email': 'testuser@example.com',
|
||||
'password': 'testpassword',
|
||||
|
@ -63,7 +63,7 @@ class UserAPITestCase(APITestCase):
|
|||
|
||||
def test_003_user_add_email(self):
|
||||
# Update user email
|
||||
response = self.client.post('/_allauth/browser/v1/account/email', {
|
||||
response = self.client.post('/auth/browser/v1/account/email', {
|
||||
'email': 'testuser2@example.com',
|
||||
}, format='json')
|
||||
self.assertEqual(response.status_code, 200)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue