Beispiel #1
0
    def change_password(self, request):
        """
        api to change user password
        ''
        """
        user = request.user

        serializer_class = self.get_serializer_class()

        serializer_data = serializer_class(data=request.data)

        if serializer_data.is_valid():

            old_password = request.data.get('old_password')
            if user.check_password(old_password):
                new_password = request.data.get('new_password')
                user.set_password(new_password)
                user.save()

                success = True
                data = []
                response_data = success_response(data=data)
            else:
                success = False

                error = {'old_password': "******"}
                response_data = error_response(error)

        else:
            success = False
            error = get_serializer_errors(serializer_data.errors)
            response_data = error_response(error)

        return Response(response_data, status=response_data.get("code"))
Beispiel #2
0
    def reset_password(self, request, pk):
        """
        api to change forgot password
        ''
        """

        forgot_pass_token = pk
        response_data = success_response()

        if request.method == 'GET':

            user_object = auth_model.objects.filter(
                is_deleted=False,
                forgot_pass_verify_code=forgot_pass_token).first()

            if user_object:

                data = {'valid': True, 'user_id': user_object.pk}
                response_data = success_response(data=data)
            else:
                error = {'valid': False}
                response_data = error_response(error)

        elif request.method == 'POST':

            serializer_class = self.get_serializer_class()

            serializer_data = serializer_class(data=request.data)

            if serializer_data.is_valid():
                user_object = auth_model.objects.filter(
                    is_deleted=False,
                    pk=serializer_data.data.get('user_id'),
                    forgot_pass_verify_code=forgot_pass_token).first()

                if user_object:
                    new_password = request.data.get('new_password')
                    user_object.set_password(new_password)
                    user_object.forgot_pass_verify_code = None  # TODO
                    user_object.save()

                    data = dict()
                    message = api_message['success_password_changed']
                    response_data = success_response(data=data,
                                                     message=message)

                else:

                    error = {
                        'token':
                        'Forgot password token is not valid, try again'
                    }
                    response_data = error_response(error)

            else:
                error = get_serializer_errors(serializer_data.errors)
                response_data = error_response(error)

        return Response(response_data, status=response_data.get("code"))
Beispiel #3
0
    def login(self, request):
        """
        user login api 
        """

        print("\n=====> Login Data:", request.data)

        serializer_class = self.get_serializer_class()
        serializer_data = serializer_class(data=request.data)

        if serializer_data.is_valid():

            user_email = serializer_data.data.get('email')
            user_password = serializer_data.data.get('password')

            get_user = auth_model.objects.filter(is_deleted=False,
                                                 email=user_email).first()

            if get_user:

                if get_user.is_active:

                    if get_user.check_password(user_password):
                        token = Token.objects.get_or_create(
                            user=get_user)[0]  # TokenAuthentication
                        # get_user.is_online = True
                        get_user.save()
                        data = get_login_user_dict(request, get_user, token)
                        message = api_message['login_success']
                        response_data = success_response(data=data,
                                                         message=message)

                    else:
                        # Here email is exist but password is wrong so success is True but code is 400

                        error = {'password': api_message['wrong_password']}
                        response_data = error_response(error)

                else:

                    error = {'email': api_message['account_deactivated']}
                    response_data = error_response(error)

            else:

                error = {'email': api_message['email_not_exist']}
                response_data = error_response(error)
        else:
            print("serializer_data:", serializer_data.errors)
            error = get_serializer_errors(serializer_data.errors)
            response_data = error_response(error)

        return Response(response_data, status=response_data.get("code"))
    def post(self, request, role_id):
        """
        for Update profile data
        """

        serializer_data = self.serializer_class(data=request.data)

        if serializer_data.is_valid():

            permission_ids = serializer_data.data.get('permission_ids', list())

            print("\n ==> permission_ids: ", permission_ids)
            models.RolePermission.objects.filter(role_id=role_id).delete()

            for perm_id in permission_ids:
                data_obj = dict()
                data_obj['role_id'] = role_id
                data_obj['permission_id'] = perm_id
                data_obj['created_by'] = request.user.pk
                data_obj['updated_by'] = request.user.pk
                models.RolePermission.objects.create(**data_obj)

            data = permission_ids
            response_data = success_response(data=data)

        else:
            error = get_serializer_errors(serializer_data.errors)
            response_data = error_response(error)

        return Response(response_data, status=response_data.get("code"))
    def get(self, request, pk):
        """
        for Retrieve product data
        """
        obj =  models.Product.objects.filter(pk=pk, is_deleted=False, is_active=True).first()

        if obj:            
            data_info = dict()
            data_info['id'] = obj.pk
            data_info['title'] = obj.title
            data_info['image'] = obj.get_image_url()
            data_info['glace'] = obj.glace
            data_info['description'] = obj.description
            data_info['extra_note'] = obj.extra_note
            data_info['importing'] = obj.get_importing()
            data_info['category'] = obj.get_category()
            data_info['subcategory'] = obj.get_subcategory()
            data_info['is_favorite'] = obj.is_favorite
            data_info['type'] = obj.get_type()
            data_info['sizes'] = obj.get_size()
            data_info['price'] = obj.price            
            response_data = success_response(data=data_info)
        else:
            response_data = error_response(code=404)

        return Response(response_data, status=response_data["code"])
    def view(self, request, pk):
        """
        Retrieve object by Id for view.
        """
        get_instance = self.get_object(pk)

        if get_instance:
            data = self.get_object_view_data(get_instance)
            response_data = success_response(data=data)
        else:
            error = {'id': response_text[603]}
            response_data = error_response(error)

        return Response(response_data, status=response_data["code"])
    def destroy(self, request, pk):
        """
        Delete object by pk.
        """

        instance = self.get_object(pk)

        if instance:
            self.perform_destroy(instance, request)
            response_data = success_response()
        else:
            error = {'id': response_text[603]}
            response_data = error_response(error)
        return Response(response_data, status=response_data["code"])
    def update(self, request, pk):
        """
        Update object by Id.
        """
        if settings.DEBUG:
            print("\n============ PUT ==>: request.data =============\n")
            print("DEBUG: ", settings.DEBUG)
            print("\nrequest.data: ", request.data)
            print("\n=================================================\n")

        get_instance = self.get_object(pk)

        extra_context = self.update_serializer_context(request)

        if get_instance:

            serializer_class = self.get_serializer_class()
            serializer = serializer_class(get_instance,
                                          data=request.data,
                                          context=extra_context)

            if serializer.is_valid():
                self.perform_update(serializer, request)
                data = []
                response_data = success_response(data=data)
            else:
                if settings.DEBUG:
                    print("\nSerializer Errors: ", serializer.errors, "\n")
                error = get_serializer_errors(serializer.errors)
                response_data = error_response(error)

        else:
            error = {'id': response_text[603]}
            response_data = error_response(error)
            return Response(response_data, status=response_data["code"])

        return Response(response_data, status=response_data["code"])
Beispiel #9
0
    def forgot_password(self, request):
        """
        api to change forgot password
        ''
        """

        serializer_class = self.get_serializer_class()

        serializer_data = serializer_class(data=request.data)

        if serializer_data.is_valid():

            user_object = auth_model.objects.filter(
                is_deleted=False,
                email=serializer_data.data.get('email')).first()
            if not user_object:

                error = {'email': 'The contact email is not registered'}
                response_data = error_response(error)

            elif not user_object.is_active:

                error = {
                    'email':
                    'The contact email is not active or verified, Please contact admin'
                }
                response_data = error_response(error)
            else:
                password_reset_email(request, user_object)
                data = dict()
                message = "Reset password link has been sent your registered email id, Please check your mail"
                response_data = success_response(data=data, message=message)
        else:
            error = get_serializer_errors(serializer_data.errors)
            response_data = error_response(error)

        return Response(response_data, status=response_data.get("code"))
Beispiel #10
0
    def get(self, request, key):
        cms_obj = models.Cms.objects.filter(is_deleted=False,
                                            is_active=True,
                                            key=key).first()

        if cms_obj:
            data_info = dict()
            data_info['key'] = cms_obj.key
            data_info['title'] = cms_obj.title
            data_info['content'] = cms_obj.content
            response_data = success_response(data_info)
        else:
            response_data = error_response()

        return Response(response_data, status=response_data["code"])
    def favorite(self, request, pk):
        """
        favorite/Unfavorite product by id.
        """
        serializer_class = self.get_serializer_class()
        serializer = serializer_class(data=request.data)

        if serializer.is_valid():
            self.model.objects.filter(pk=pk).update(
                is_favorite=serializer.data.get('is_favorite'))
            response_data = success_response()
        else:
            error = get_serializer_errors(serializer.errors)
            response_data = error_response(error)

        return Response(response_data, status=response_data["code"])
    def partial_update(self, request, pk):
        """
        Change active status (active/inactive) of object by Id.
        """
        instance = self.get_object(pk)

        if instance:
            instance.is_active = False if instance.is_active else True
            instance.updated_by = request.user.id
            instance.save()
            data = {'is_active': instance.is_active}
            response_data = success_response(data=data)
        else:
            error = {'id': response_text[603]}
            response_data = error_response(error)

        return Response(response_data, status=response_data["code"])
Beispiel #13
0
    def check_user_token(self, request):
        """
        api to check user token
        ''
        """
        token = request.META.get('HTTP_AUTHORIZATION').split(' ')[1]
        user = request.user
        token_obj = Token.objects.filter(key=token, user_id=user.id).first()
        if token_obj:
            success = True
            data = get_login_user_dict(request, user, token_obj)
            response_data = success_response(data=data)
        else:
            success = False

            error = {'token': api_message['login_again']}
            response_data = error_response(error=error)

        return Response(response_data, status=response_data.get("code"))
Beispiel #14
0
    def post(self, request):
        """
        for Update profile data
        """

        serializer_data = self.serializer_class(request.user,
                                                data=request.data)

        if serializer_data.is_valid():

            user_obj = serializer_data.save()
            user_obj.updated_by = request.user.pk
            user_obj.save()

            data = get_profile_data(user_obj)
            response_data = success_response(data=data)

        else:
            error = get_serializer_errors(serializer_data.errors)
            response_data = error_response(error)

        return Response(response_data, status=response_data.get("code"))
    def create(self, request):
        """
        Create a new object.
        """
        if settings.DEBUG:
            p_print("POST ==>: request.data", request.data)

        extra_context = self.update_serializer_context(request)
        serializer_class = self.get_serializer_class()
        serializer = serializer_class(data=request.data, context=extra_context)

        if serializer.is_valid():
            self.perform_create(serializer, request)
            data = []
            response_data = success_response(data=data)

        else:
            if settings.DEBUG:
                print("\nSerializer Errors: ", serializer.errors, "\n")
            error = get_serializer_errors(serializer.errors)
            response_data = error_response(error)

        return Response(response_data, status=response_data["code"])