mirror of
https://github.com/HamzaSha1/zod-backend.git
synced 2025-11-26 08:34:55 +00:00
@ -45,11 +45,12 @@ class CustomMiddleware(object):
|
|||||||
device_type = str(request.META.get('HTTP_TYPE'))
|
device_type = str(request.META.get('HTTP_TYPE'))
|
||||||
|
|
||||||
api_endpoint = request.path
|
api_endpoint = request.path
|
||||||
|
unrestricted_api = ('/api/v1/user/login/', '/api/v1/logout/', '/api/v1/generate-token/')
|
||||||
if request.user.is_authenticated:
|
if request.user.is_authenticated:
|
||||||
# device details
|
# device details
|
||||||
if device_id:
|
if device_id:
|
||||||
device_details = UserDeviceDetails.objects.filter(user=request.user, device_id=device_id).last()
|
device_details = UserDeviceDetails.objects.filter(user=request.user, device_id=device_id).last()
|
||||||
if not device_details and api_endpoint != '/api/v1/user/login/':
|
if not device_details and api_endpoint not in unrestricted_api:
|
||||||
custom_error = custom_error_response(ERROR_CODE['2037'], response_status=status.HTTP_404_NOT_FOUND)
|
custom_error = custom_error_response(ERROR_CODE['2037'], response_status=status.HTTP_404_NOT_FOUND)
|
||||||
response = custom_response(custom_error)
|
response = custom_response(custom_error)
|
||||||
if user_type and str(user_type) == str(NUMBER['one']):
|
if user_type and str(user_type) == str(NUMBER['one']):
|
||||||
|
|||||||
@ -147,8 +147,8 @@ SUCCESS_CODE = {
|
|||||||
"3018": "Task created successfully",
|
"3018": "Task created successfully",
|
||||||
"3019": "Support Email sent successfully",
|
"3019": "Support Email sent successfully",
|
||||||
"3020": "Logged out successfully.",
|
"3020": "Logged out successfully.",
|
||||||
"3021": "Add junior successfully",
|
"3021": "Added junior successfully",
|
||||||
"3022": "Remove junior successfully",
|
"3022": "Removed junior successfully",
|
||||||
"3023": "Junior is approved successfully",
|
"3023": "Junior is approved successfully",
|
||||||
"3024": "Junior request is rejected successfully",
|
"3024": "Junior request is rejected successfully",
|
||||||
"3025": "Task is approved successfully",
|
"3025": "Task is approved successfully",
|
||||||
|
|||||||
@ -218,7 +218,7 @@ class TaskSerializer(serializers.ModelSerializer):
|
|||||||
class Meta(object):
|
class Meta(object):
|
||||||
"""Meta info"""
|
"""Meta info"""
|
||||||
model = JuniorTask
|
model = JuniorTask
|
||||||
fields = ['id', 'task_name','task_description','points', 'due_date', 'junior', 'default_image']
|
fields = ['id', 'task_name','task_description','points', 'due_date','default_image']
|
||||||
|
|
||||||
def validate_due_date(self, value):
|
def validate_due_date(self, value):
|
||||||
"""validation on due date"""
|
"""validation on due date"""
|
||||||
@ -229,11 +229,20 @@ class TaskSerializer(serializers.ModelSerializer):
|
|||||||
return value
|
return value
|
||||||
def create(self, validated_data):
|
def create(self, validated_data):
|
||||||
"""create default task image data"""
|
"""create default task image data"""
|
||||||
validated_data['guardian'] = Guardian.objects.filter(user=self.context['user']).last()
|
guardian = Guardian.objects.filter(user=self.context['user']).last()
|
||||||
# update image of the task
|
# update image of the task
|
||||||
images = self.context['image']
|
images = self.context['image']
|
||||||
validated_data['default_image'] = images
|
junior_ids = self.context['junior_data']
|
||||||
instance = JuniorTask.objects.create(**validated_data)
|
junior_data = junior_ids[0].split(',')
|
||||||
|
tasks_created = []
|
||||||
|
|
||||||
|
for junior_id in junior_data:
|
||||||
|
task_data = validated_data.copy()
|
||||||
|
task_data['guardian'] = guardian
|
||||||
|
task_data['default_image'] = images
|
||||||
|
task_data['junior'] = Junior.objects.filter(id=junior_id).last()
|
||||||
|
instance = JuniorTask.objects.create(**task_data)
|
||||||
|
tasks_created.append(instance)
|
||||||
return instance
|
return instance
|
||||||
|
|
||||||
class GuardianDetailSerializer(serializers.ModelSerializer):
|
class GuardianDetailSerializer(serializers.ModelSerializer):
|
||||||
|
|||||||
@ -177,7 +177,8 @@ class CreateTaskAPIView(viewsets.ModelViewSet):
|
|||||||
"""
|
"""
|
||||||
try:
|
try:
|
||||||
image = request.data['default_image']
|
image = request.data['default_image']
|
||||||
junior = request.data['junior']
|
juniors = request.data['junior'].split(',')
|
||||||
|
for junior in juniors:
|
||||||
junior_id = Junior.objects.filter(id=junior).last()
|
junior_id = Junior.objects.filter(id=junior).last()
|
||||||
if junior_id:
|
if junior_id:
|
||||||
guardian_data = Guardian.objects.filter(user=request.user).last()
|
guardian_data = Guardian.objects.filter(user=request.user).last()
|
||||||
@ -201,15 +202,17 @@ class CreateTaskAPIView(viewsets.ModelViewSet):
|
|||||||
image_url = upload_image_to_alibaba(image, filename)
|
image_url = upload_image_to_alibaba(image, filename)
|
||||||
image_data = image_url
|
image_data = image_url
|
||||||
data.pop('default_image')
|
data.pop('default_image')
|
||||||
|
junior_data = data.pop('junior')
|
||||||
# use TaskSerializer serializer
|
# use TaskSerializer serializer
|
||||||
serializer = TaskSerializer(context={"user":request.user, "image":image_data}, data=data)
|
serializer = TaskSerializer(context={"user":request.user, "image":image_data,
|
||||||
|
"junior_data":junior_data}, data=data)
|
||||||
if serializer.is_valid():
|
if serializer.is_valid():
|
||||||
# save serializer
|
# save serializer
|
||||||
task = serializer.save()
|
task = serializer.save()
|
||||||
|
|
||||||
send_notification.delay(TASK_ASSIGNED, request.auth.payload['user_id'], GUARDIAN,
|
send_notification.delay(TASK_ASSIGNED, request.auth.payload['user_id'], GUARDIAN,
|
||||||
junior_id.auth.id, {'task_id': task.id})
|
junior_id.auth.id, {'task_id': task.id})
|
||||||
return custom_response(SUCCESS_CODE['3018'], serializer.data, response_status=status.HTTP_200_OK)
|
return custom_response(SUCCESS_CODE['3018'], response_status=status.HTTP_200_OK)
|
||||||
return custom_error_response(serializer.errors, response_status=status.HTTP_400_BAD_REQUEST)
|
return custom_error_response(serializer.errors, response_status=status.HTTP_400_BAD_REQUEST)
|
||||||
else:
|
else:
|
||||||
return custom_error_response(ERROR_CODE['2047'], response_status=status.HTTP_400_BAD_REQUEST)
|
return custom_error_response(ERROR_CODE['2047'], response_status=status.HTTP_400_BAD_REQUEST)
|
||||||
|
|||||||
Reference in New Issue
Block a user