Skip to content

Commit 204cca4

Browse files
committed
- feat: add logout endpoint
1 parent be83eab commit 204cca4

File tree

3 files changed

+24
-1
lines changed

3 files changed

+24
-1
lines changed
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
from .register import RegisterViewSet
22
from .login import LoginViewSet
33
from .active_session import ActiveSessionViewSet
4+
from .logout import LogoutViewSet
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
from rest_framework import viewsets, mixins
2+
from rest_framework.response import Response
3+
from rest_framework import status
4+
from rest_framework.permissions import IsAuthenticated
5+
6+
from api.authentication.models import ActiveSession
7+
8+
9+
class LogoutViewSet(viewsets.GenericViewSet, mixins.CreateModelMixin):
10+
permission_classes = (IsAuthenticated,)
11+
12+
def create(self, request, *args, **kwargs):
13+
user = request.user
14+
15+
session = ActiveSession.objects.get(user=user)
16+
session.delete()
17+
18+
return Response({
19+
"success": True
20+
}, status=status.HTTP_200_OK)

api/routers.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
from api.authentication.viewsets import RegisterViewSet, LoginViewSet, ActiveSessionViewSet
1+
from api.authentication.viewsets import RegisterViewSet, LoginViewSet, ActiveSessionViewSet, LogoutViewSet
22
from rest_framework import routers
33
from api.user.viewsets import UserViewSet
44

@@ -12,6 +12,8 @@
1212

1313
router.register(r'checkSession', ActiveSessionViewSet, basename='check-session')
1414

15+
router.register(r'logout', LogoutViewSet, basename='logout')
16+
1517
urlpatterns = [
1618
*router.urls,
1719
]

0 commit comments

Comments
 (0)