from django.contrib.auth import get_user_model from django.contrib import auth from rest_framework.views import APIView from rest_framework.renderers import JSONRenderer from rest_framework.response import Response from access.serializers import UserInitSerializer class TeacherListView(APIView): renderer_classes = (JSONRenderer,) status_code = 200 def get(self, request): return Response([teacher.full_name() for teacher in get_user_model().objects.filter( in_role='T', is_active=True, reg_status=4, )], self.status_code) class CheckUserView(APIView): renderer_classes = (JSONRenderer,) status_code = 200 def get(self, request): if request.user.is_authenticated() and (request.user.in_role in ['M', 'S', 'S2', 'A'] or request.user.is_admin): return Response(True, status=self.status_code) return Response(False, status=self.status_code) class LoginView(APIView): renderer_classes = (JSONRenderer,) status_code = 200 def get(self, request): if not request.user.is_authenticated(): user = auth.authenticate(email=request.JSON.get('email'), password=request.JSON.get('password')) return Response(UserInitSerializer(user).data, status=self.status_code) return Response(status=403) class LogoutView(APIView): renderer_classes = (JSONRenderer,) status_code = 204 def get(self, request): return Response(False, status=self.status_code)