middleware

This commit is contained in:
jain
2023-08-18 18:12:14 +05:30
parent 5b236dfc81
commit b4026a4f11
5 changed files with 19 additions and 7 deletions

View File

@ -39,8 +39,9 @@ class CustomMiddleware(object):
# Code to be executed after the view is called
device_id = request.META.get('HTTP_DEVICE_ID')
user_type = request.META.get('HTTP_USER_TYPE')
api_endpoint = request.path
if request.user.is_authenticated:
"""device details"""
# device details
device_details = UserDeviceDetails.objects.filter(user=request.user, device_id=device_id).last()
if user_type and str(user_type) == str(NUMBER['one']):
junior = Junior.objects.filter(auth=request.user, is_active=False).last()
@ -52,7 +53,7 @@ class CustomMiddleware(object):
if guardian:
custom_error = custom_error_response(ERROR_CODE['2075'], response_status=status.HTTP_404_NOT_FOUND)
response = custom_response(custom_error)
if device_id and not device_details:
if device_id and not device_details and api_endpoint != '/api/v1/user/login/':
custom_error = custom_error_response(ERROR_CODE['2037'], response_status=status.HTTP_404_NOT_FOUND)
response = custom_response(custom_error)
return response

View File

@ -137,10 +137,12 @@ def user_device_details(user, device_id):
device_id: string
return
"""
device_details, created = UserDeviceDetails.objects.get_or_create(user=user)
device_details, created = UserDeviceDetails.objects.get_or_create(user__id=user)
if device_details:
device_details.device_id = device_id
device_details.save()
return True
return False
def send_support_email(name, sender, subject, message):

View File

@ -322,7 +322,11 @@ class UserLogin(viewsets.ViewSet):
response_status=status.HTTP_401_UNAUTHORIZED
)
# storing device id in using celery task so the time would be reduced
user_device_details.delay(user, device_id)
# user_device_details.delay(user.id, device_id)
device_details, created = UserDeviceDetails.objects.get_or_create(user=user)
if device_details:
device_details.device_id = device_id
device_details.save()
return custom_response(SUCCESS_CODE['3003'], serializer, response_status=status.HTTP_200_OK)
else:
return custom_error_response(ERROR_CODE["2002"], response_status=status.HTTP_401_UNAUTHORIZED)

View File

@ -260,7 +260,7 @@ class ApproveJuniorAPIView(viewsets.ViewSet):
guardian = Guardian.objects.filter(user__email=self.request.user).last()
# fetch junior query
junior_queryset = Junior.objects.filter(id=self.request.data.get('junior_id')).last()
if junior_queryset and junior_queryset.is_deleted:
if junior_queryset and (junior_queryset.is_deleted or not junior_queryset.is_active):
return custom_error_response(ERROR_CODE['2073'], response_status=status.HTTP_400_BAD_REQUEST)
# action 1 is use for approve and 2 for reject
if request.data['action'] == '1':
@ -295,7 +295,12 @@ class ApproveTaskAPIView(viewsets.ViewSet):
task_queryset = JuniorTask.objects.filter(id=self.request.data.get('task_id'),
guardian=guardian,
junior=self.request.data.get('junior_id')).last()
if task_queryset and task_queryset.junior.is_deleted:
print("task_queryset.junior.is_deleted===>",task_queryset.junior.is_deleted)
print("task_queryset.junior.is_active===>",task_queryset.junior.is_active)
print("task_queryset.junior.is_deleted===>", type(task_queryset.junior.is_deleted))
print("task_queryset.junior.is_active===>", type(task_queryset.junior.is_active))
print("99999===>",(task_queryset.junior.is_deleted or not task_queryset.junior.is_active))
if task_queryset and (task_queryset.junior.is_deleted or not task_queryset.junior.is_active):
return custom_error_response(ERROR_CODE['2072'], response_status=status.HTTP_400_BAD_REQUEST)
# use ApproveJuniorSerializer serializer
serializer = ApproveTaskSerializer(context={"guardian_code": guardian.guardian_code,

View File

@ -339,7 +339,7 @@ class CompleteJuniorTaskAPIView(views.APIView):
task_queryset = JuniorTask.objects.filter(id=task_id, junior__auth__email=self.request.user
).select_related('guardian', 'junior').last()
if task_queryset:
if task_queryset.junior.is_deleted:
if task_queryset.junior.is_deleted or not task_queryset.junior.is_active:
return custom_error_response(ERROR_CODE['2074'], response_status=status.HTTP_400_BAD_REQUEST)
# use CompleteTaskSerializer serializer
if task_queryset.task_status in [str(NUMBER['four']), str(NUMBER['five'])]: