50 lines
1.9 KiB
Python
50 lines
1.9 KiB
Python
from django.contrib.auth import authenticate
|
|
from rest_framework.response import Response
|
|
from rest_framework.views import APIView
|
|
from rest_framework_simplejwt.tokens import RefreshToken
|
|
|
|
from ...api_serializers.auth.serializers import GetEmployeeSerializer
|
|
|
|
|
|
class LoginAPIView(APIView):
|
|
def post(self, request):
|
|
if "username" and "password" in request.data.keys():
|
|
username = request.data.get("username")
|
|
password = request.data.get("password")
|
|
user = authenticate(username=username, password=password)
|
|
if user:
|
|
refresh = RefreshToken.for_user(user)
|
|
employee = user.employee_get
|
|
face_detection = False
|
|
face_detection_image = None
|
|
geo_fencing = False
|
|
try:
|
|
face_detection = employee.get_company().face_detection.start
|
|
except:
|
|
pass
|
|
try:
|
|
geo_fencing = employee.get_company().geo_fencing.start
|
|
except:
|
|
pass
|
|
try:
|
|
face_detection_image = employee.face_detection.image.url
|
|
except:
|
|
pass
|
|
try:
|
|
company_id = employee.get_company().id
|
|
except:
|
|
pass
|
|
result = {
|
|
"employee": GetEmployeeSerializer(employee).data,
|
|
"access": str(refresh.access_token),
|
|
"face_detection": face_detection,
|
|
"face_detection_image": face_detection_image,
|
|
"geo_fencing": geo_fencing,
|
|
"company_id": company_id,
|
|
}
|
|
return Response(result, status=200)
|
|
else:
|
|
return Response({"error": "Invalid credentials"}, status=401)
|
|
else:
|
|
return Response({"error": "Please provide Username and Password"})
|