mirror of
https://github.com/HamzaSha1/zod-backend.git
synced 2025-11-26 08:34:55 +00:00
sprint4 reassign task after expired
This commit is contained in:
@ -91,7 +91,8 @@ ERROR_CODE = {
|
||||
"2062": "Please enter email address",
|
||||
"2063": "Unauthorized access.",
|
||||
"2064": "To change your password first request an OTP and get it verify then change your password.",
|
||||
"2065": "Passwords do not match. Please try again."
|
||||
"2065": "Passwords do not match. Please try again.",
|
||||
"2066": "Task does not exist or not in expired state"
|
||||
}
|
||||
"""Success message code"""
|
||||
SUCCESS_CODE = {
|
||||
@ -140,7 +141,8 @@ SUCCESS_CODE = {
|
||||
"3032": "Task request sent successfully",
|
||||
"3033": "Valid Referral code",
|
||||
"3034": "Invite guardian successfully",
|
||||
"3035": "Task started successfully"
|
||||
"3035": "Task started successfully",
|
||||
"3036": "Task reassign successfully"
|
||||
}
|
||||
"""status code error"""
|
||||
STATUS_CODE_ERROR = {
|
||||
|
||||
@ -458,3 +458,17 @@ class StartTaskSerializer(serializers.ModelSerializer):
|
||||
instance.task_status = str(NUMBER['two'])
|
||||
instance.save()
|
||||
return instance
|
||||
|
||||
class ReAssignTaskSerializer(serializers.ModelSerializer):
|
||||
"""User task Serializer"""
|
||||
class Meta(object):
|
||||
"""Meta class"""
|
||||
model = JuniorTask
|
||||
fields = ('id', 'due_date')
|
||||
def update(self, instance, validated_data):
|
||||
instance.task_status = str(NUMBER['one'])
|
||||
instance.due_date = validated_data.get('due_date')
|
||||
instance.is_approved = False
|
||||
instance.requested_on = None
|
||||
instance.save()
|
||||
return instance
|
||||
|
||||
@ -4,7 +4,7 @@ from django.urls import path, include
|
||||
from .views import (UpdateJuniorProfile, ValidateGuardianCode, JuniorListAPIView, AddJuniorAPIView,
|
||||
InvitedJuniorAPIView, FilterJuniorAPIView, RemoveJuniorAPIView, JuniorTaskListAPIView,
|
||||
CompleteJuniorTaskAPIView, JuniorPointsListAPIView, ValidateReferralCode,
|
||||
InviteGuardianAPIView, StartTaskAPIView)
|
||||
InviteGuardianAPIView, StartTaskAPIView, ReAssignJuniorTaskAPIView)
|
||||
"""Third party import"""
|
||||
from rest_framework import routers
|
||||
|
||||
@ -46,5 +46,6 @@ urlpatterns = [
|
||||
path('api/v1/', include(router.urls)),
|
||||
path('api/v1/remove-junior/', RemoveJuniorAPIView.as_view()),
|
||||
path('api/v1/complete-task/', CompleteJuniorTaskAPIView.as_view()),
|
||||
path('api/v1/start-task/', StartTaskAPIView.as_view())
|
||||
path('api/v1/start-task/', StartTaskAPIView.as_view()),
|
||||
path('api/v1/reassign-task/', ReAssignJuniorTaskAPIView.as_view()),
|
||||
]
|
||||
|
||||
@ -30,7 +30,7 @@ import requests
|
||||
from junior.models import Junior, JuniorPoints
|
||||
from .serializers import (CreateJuniorSerializer, JuniorDetailListSerializer, AddJuniorSerializer,\
|
||||
RemoveJuniorSerializer, CompleteTaskSerializer, JuniorPointsSerializer,
|
||||
AddGuardianSerializer, StartTaskSerializer)
|
||||
AddGuardianSerializer, StartTaskSerializer, ReAssignTaskSerializer)
|
||||
from guardian.models import Guardian, JuniorTask
|
||||
from guardian.serializers import TaskDetailsSerializer, TaskDetailsjuniorSerializer
|
||||
from base.messages import ERROR_CODE, SUCCESS_CODE
|
||||
@ -434,3 +434,27 @@ class StartTaskAPIView(views.APIView):
|
||||
return custom_error_response(ERROR_CODE['2060'], response_status=status.HTTP_400_BAD_REQUEST)
|
||||
except Exception as e:
|
||||
return custom_error_response(str(e), response_status=status.HTTP_400_BAD_REQUEST)
|
||||
|
||||
class ReAssignJuniorTaskAPIView(views.APIView):
|
||||
"""Update junior task API"""
|
||||
serializer_class = ReAssignTaskSerializer
|
||||
model = JuniorTask
|
||||
permission_classes = [IsAuthenticated]
|
||||
|
||||
def put(self, request, format=None):
|
||||
try:
|
||||
task_id = self.request.data.get('task_id')
|
||||
task_queryset = JuniorTask.objects.filter(id=task_id, guardian__user__email=self.request.user).last()
|
||||
if task_queryset and task_queryset.task_status == str(NUMBER['six']):
|
||||
# use StartTaskSerializer serializer
|
||||
serializer = ReAssignTaskSerializer(task_queryset, data=request.data, partial=True)
|
||||
if serializer.is_valid():
|
||||
# save serializer
|
||||
serializer.save()
|
||||
return custom_response(SUCCESS_CODE['3036'], response_status=status.HTTP_200_OK)
|
||||
return custom_error_response(serializer.errors, response_status=status.HTTP_400_BAD_REQUEST)
|
||||
else:
|
||||
# task in another state
|
||||
return custom_error_response(ERROR_CODE['2066'], response_status=status.HTTP_400_BAD_REQUEST)
|
||||
except Exception as e:
|
||||
return custom_error_response(str(e), response_status=status.HTTP_400_BAD_REQUEST)
|
||||
|
||||
Reference in New Issue
Block a user