Ejemplo n.º 1
0
    def post(self, request):
        data = request.data

        logger.info(
            '{_class} {method} {object} {data}'.format(
                method=stack()[0][3], _class=self.__class__.__name__,
                object=model,
                data=data)
        )

        authorization = get_authorization_header(request)
        if authorization:
            context = {
                'message': 'THERE IS CURRENTLY A USER HAS ALREADY LOGGED IN.',
                'status': 400
            }
            return make_response(context)

        is_valid = UserSerializer(data=data).is_valid()

        if not is_valid:
            email = data.get('email', '')
            user = User.objects.filter(email=email).first()
            if user and user.is_active:
                context = {
                    'status': 400,
                    'message': 'THIS EMAIL IS ALREADY IN USED.'
                }
                return make_response(context)

        data['password'] = make_password(data['password'])
        user, _ = User.objects.update_or_create(
            email=data.get('email', ''),
            defaults=data
        )
        user.is_active = True
        user.save()

        user_serialized = UserSerializer(user, many=False)
        context = {
            'data': user_serialized.data,
            'message': 'OK',
            'status': 200
        }

        return make_response(context)
Ejemplo n.º 2
0
    def post(self, request):
        data = request.data
        email = data.get('email', '').lower()
        password = data.get('password', '')

        logger.info(
            '{_class} {method} {object} {data}'.format(
                method=stack()[0][3], _class=self.__class__.__name__,
                object=model,
                data=data)
        )

        user = User.objects.filter(email=email).first()
        if not user.check_password(password):
            context = {
                'message': 'INVALID LOGIN INFORMATION',
                'status': 400
            }
            return make_response(context)
        if user.is_online:
            context = {
                'message': 'THERE IS CURRENTLY A USER HAS ALREADY LOGGED IN.',
                'status': 400
            }
            return make_response(context)

        previous_token, _ = Token.objects.get_or_create(user=user)
        previous_token.delete()

        # create token objects validated by user
        token = Token.objects.create(user=user)
        # save the same token into user_token using the same validation is user
        payload = jwt_payload_handler(user)
        token = jwt_encode_handler(payload)
        user.user_token = token

        user.is_active = True
        user.is_online = True
        user.save()

        context = {
            'message': 'OK',
            'status': 200,
            'data': UserSerializer(user).data
        }
        return make_response(context)
Ejemplo n.º 3
0
    def delete(self, request):
        # data = request.data
        logger.info(
            '{_class} {method} {object}'.format(
                method=stack()[0][3], _class=self.__class__.__name__,
                object=model)
        )

        current_user = request.user
        if current_user.is_anonymous:
            context = {
                'message': 'ANONYMOUS USER.',
                'status': 400
            }
            return make_response(context)

        user = User.objects.filter(pk=current_user.pk).first()
        if not user:
            context = {
                'message': 'USER IS NOT IN DB :O.',
                'status': 500
            }

        if not user.is_online:
            context = {
                'message': 'ANONYMOUS USER.',
                'status': 400
            }
            return make_response(context)

        user.is_active = False
        user.is_online = False
        user.save()

        context = {
            'message': 'DELETE USER SUCCESSFULLY.',
            'status': 204
        }
        return make_response(context)
Ejemplo n.º 4
0
 def get(self, request):
     data = request.data
     logger.info(
         '{_class} {method} {object} {data}'.format(
             method=stack()[0][3], _class=self.__class__.__name__,
             object=model,
             data=data)
     )
     user_list = User.objects.filter(is_active=True)
     user_list_serialized = UserSerializer(user_list, many=True)
     if not user_list:
         context = {
             'message': 'NO USERS',
             'status': 204
         }
         return make_response(context)
     context = {
         'message': 'OK',
         'status': 200,
         'data': user_list_serialized.data
     }
     return make_response(context)
Ejemplo n.º 5
0
    def get(self, request, *args, **kwargs):
        logger.info(
            '{_class} {method} {object}'.format(
                method=stack()[0][3], _class=self.__class__.__name__,
                object=model)
        )

        authorization = get_authorization_header(request)
        current_token = ''
        if authorization:
            current_token = authorization.split()[1]
        if not current_token:
            context = {
                'message': "ANONYMOUS USER.",
                'status': 400
            }
            return make_response(context)

        user = request.user
        if user.is_anonymous:
            context = {
                'message': 'ANONYMOUS USER.',
                'status': 404,
            }
            return make_response(context)
        if not user.is_online:
            context = {
                'message': 'ANONYMOUS USER.',
                'status': 404,
            }
            return make_response(context)

        context = {
            'message': 'OK',
            'status': 200,
            'data': UserSerializer(user).data
        }
        return make_response(context)
Ejemplo n.º 6
0
    def get(self, request):
        logger.info(
            '{_class} {method} {object}'.format(
                method=stack()[0][3], _class=self.__class__.__name__,
                object=model)
        )

        authorization = get_authorization_header(request)
        current_token = ''
        if authorization:
            current_token = authorization.split()[1]
        if not current_token:
            context = {
                'message': "ANONYMOUS USER.",
                'status': 400
            }
            return make_response(context)

        current_user = request.user
        user = User.objects.filter(pk=current_user.pk).first()
        if not user.is_online:
            context = {
                'message': "ANONYMOUS USER.",
                'status': 400
            }
            return make_response(context)

        token = Token.objects.filter(user=user).first()
        token.delete()
        user.is_online = False
        user.save()

        context = {
            'message': "LOGOUT SUCCESSFULLY.",
            'status': 200,
            'data': UserSerializer(user).data
        }
        return make_response(context)
Ejemplo n.º 7
0
    def put(self, request):
        data = request.data

        logger.info(
            '{_class} {method} {object} {data}'.format(
                method=stack()[0][3], _class=self.__class__.__name__,
                object=model,
                data=data)
        )

        authorization = get_authorization_header(request)
        current_token = ''
        if authorization:
            current_token = authorization.split()[1]
        if not current_token:
            context = {
                'message': "ANONYMOUS USER.",
                'status': 400
            }
            return make_response(context)

        current_user = request.user
        if current_user.is_anonymous:
            context = {
                'message': 'ANONYMOUS USER.',
                'status': 400
            }
            return make_response(context)
        user = User.objects.filter(pk=current_user.pk).first()

        if not user.is_online:
            context = {
                'message': 'ANONYMOUS USER.',
                'status': 400
            }
            return make_response(context)

        email = data.get('email', '')
        if user.email != email and len(User.objects.filter(email=email)) == 1:
            context = {
                'message': 'THIS EMAIL IS ALREADY IN USED.',
                'status': 400,
                'data': data
            }
            return make_response(context)

        password = make_password(data.get('password', user.password))
        first_name = data.get('first_name', user.first_name)
        last_name = data.get('last_name', user.last_name)
        user.update(email=email,
                    password=password,
                    first_name=first_name,
                    last_name=last_name)

        user_serialized = UserSerializer(user)

        context = {
            'message': 'OK',
            'status': 200,
            'data': user_serialized.data
        }
        return make_response(context)