diff --git a/account/views.py b/account/views.py index 3e09080..a52dff7 100644 --- a/account/views.py +++ b/account/views.py @@ -518,7 +518,13 @@ class DefaultImageAPIViewSet(viewsets.ModelViewSet): class DeleteUserProfileAPIViewSet(viewsets.GenericViewSet): - """ Delete user API view set """ + """ Delete user API view set + {"user_type":1, + "signup_method":"1", + "password":"Demo@123"} + signup_method 1 for manual + 2 for google login + 3 for apple login""" @action(detail=False, methods=['POST'], url_path='user-account',serializer_class=UserDeleteSerializer, permission_classes=[IsAuthenticated]) diff --git a/guardian/views.py b/guardian/views.py index 9656b9a..6f4cb16 100644 --- a/guardian/views.py +++ b/guardian/views.py @@ -32,7 +32,7 @@ from .serializers import (UserSerializer, CreateGuardianSerializer, TaskSerializ GuardianDetailListSerializer) from .models import Guardian, JuniorTask from junior.models import Junior, JuniorPoints, JuniorGuardianRelationship -from account.models import UserEmailOtp, UserNotification +from account.models import UserEmailOtp, UserNotification, UserDeviceDetails from .tasks import generate_otp from account.utils import custom_response, custom_error_response, OTP_EXPIRY, send_otp_email from base.messages import ERROR_CODE, SUCCESS_CODE @@ -59,6 +59,7 @@ class SignupViewset(viewsets.ModelViewSet): serializer_class = UserSerializer def create(self, request, *args, **kwargs): """Create user profile""" + device_id = request.META.get('HTTP_DEVICE_ID') if request.data['user_type'] in [str(NUMBER['one']), str(NUMBER['two'])]: serializer = UserSerializer(context=request.data['user_type'], data=request.data) if serializer.is_valid(): @@ -72,16 +73,21 @@ class SignupViewset(viewsets.ModelViewSet): user_type=str(request.data['user_type']), expired_at=expiry) """Send email to the register user""" send_otp_email(request.data['email'], otp) + 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['3001'], response_status=status.HTTP_200_OK) return custom_error_response(serializer.errors, response_status=status.HTTP_400_BAD_REQUEST) else: return custom_error_response(ERROR_CODE['2028'], response_status=status.HTTP_400_BAD_REQUEST) -class UpdateGuardianProfile(viewsets.ViewSet): +class UpdateGuardianProfile(viewsets.ModelViewSet): """Update guardian profile""" serializer_class = CreateGuardianSerializer permission_classes = [IsAuthenticated] + http_method_names = ('post',) def create(self, request, *args, **kwargs): """Create guardian profile""" @@ -161,6 +167,9 @@ class CreateTaskAPIView(viewsets.ModelViewSet): http_method_names = ('post', ) def create(self, request, *args, **kwargs): + """ + image should be in form data + """ try: image = request.data['default_image'] junior = request.data['junior'] @@ -252,14 +261,17 @@ class TopJuniorListAPIView(viewsets.ModelViewSet): return custom_error_response(str(e), response_status=status.HTTP_400_BAD_REQUEST) -class ApproveJuniorAPIView(viewsets.ViewSet): +class ApproveJuniorAPIView(viewsets.ModelViewSet): """approve junior by guardian""" serializer_class = ApproveJuniorSerializer permission_classes = [IsAuthenticated] - + http_method_names = ('post',) def create(self, request, *args, **kwargs): - """ junior list""" + """ Use below param + {"junior_id":"75", + "action":"1"} + """ try: guardian = Guardian.objects.filter(user__email=self.request.user).last() # fetch junior query @@ -285,13 +297,19 @@ class ApproveJuniorAPIView(viewsets.ViewSet): return custom_error_response(str(e), response_status=status.HTTP_400_BAD_REQUEST) -class ApproveTaskAPIView(viewsets.ViewSet): +class ApproveTaskAPIView(viewsets.ModelViewSet): """approve junior by guardian""" serializer_class = ApproveTaskSerializer permission_classes = [IsAuthenticated] - + http_method_names = ('post',) def create(self, request, *args, **kwargs): - """ junior list""" + """ Params + {"junior_id":"82", + "task_id":"43", + "action":"1"} + action 1 for approve + 2 for reject + """ # action 1 is use for approve and 2 for reject try: guardian = Guardian.objects.filter(user__email=self.request.user).last() diff --git a/junior/serializers.py b/junior/serializers.py index b4aa54f..f79cd46 100644 --- a/junior/serializers.py +++ b/junior/serializers.py @@ -24,7 +24,7 @@ from guardian.utils import real_time, update_referral_points, convert_timedelta_ from notifications.utils import send_notification, send_notification_to_junior, send_notification_to_guardian from notifications.constants import (INVITED_GUARDIAN, APPROVED_JUNIOR, SKIPPED_PROFILE_SETUP, TASK_ACTION, TASK_SUBMITTED) - +from web_admin.models import ArticleCard class ListCharField(serializers.ListField): """Serializer for Array field""" @@ -518,3 +518,11 @@ class FAQSerializer(serializers.ModelSerializer): model = FAQ fields = ('id', 'question', 'description') +class CreateArticleCardSerializer(serializers.ModelSerializer): + # Article card Serializer + + class Meta(object): + # meta info + model = ArticleCard + fields = ('id', 'article') + diff --git a/junior/views.py b/junior/views.py index 8df8a09..5eb15bd 100644 --- a/junior/views.py +++ b/junior/views.py @@ -36,7 +36,7 @@ from junior.models import (Junior, JuniorPoints, JuniorGuardianRelationship, Jun from .serializers import (CreateJuniorSerializer, JuniorDetailListSerializer, AddJuniorSerializer, RemoveJuniorSerializer, CompleteTaskSerializer, JuniorPointsSerializer, AddGuardianSerializer, StartTaskSerializer, ReAssignTaskSerializer, - RemoveGuardianCodeSerializer, FAQSerializer) + RemoveGuardianCodeSerializer, FAQSerializer, CreateArticleCardSerializer) from guardian.models import Guardian, JuniorTask from guardian.serializers import TaskDetailsSerializer, TaskDetailsjuniorSerializer from base.messages import ERROR_CODE, SUCCESS_CODE @@ -65,10 +65,11 @@ from web_admin.serializers.article_serializer import (ArticleSerializer, Article # Start task # by junior API # Create your views here. -class UpdateJuniorProfile(viewsets.ViewSet): +class UpdateJuniorProfile(viewsets.ModelViewSet): """Update junior profile""" serializer_class = CreateJuniorSerializer permission_classes = [IsAuthenticated] + http_method_names = ('post',) def create(self, request, *args, **kwargs): """Use CreateJuniorSerializer""" @@ -622,11 +623,14 @@ class ReadArticleCardAPIView(views.APIView): class CreateArticleCardAPIView(viewsets.ModelViewSet): """Start article""" + serializer_class = CreateArticleCardSerializer permission_classes = [IsAuthenticated] http_method_names = ('post',) def create(self, request, *args, **kwargs): - """ junior list""" + """ create article card + Params + {"article_id":1}""" try: junior_instance = Junior.objects.filter(auth=self.request.user).last() article_id = request.data.get('article_id')