Beispiel #1
0
def password_validation(data):
    try:
        password = data['password']
        if password is None or not re.match(r'[A-Za-z0-9@#$%^&+=]+', password):
            raise exceptions_utils.ValidationException(messages.PASSWORD_NECESSITY, status.HTTP_406_NOT_ACCEPTABLE)
        else:
            return data
    except KeyError:
        raise exceptions_utils.ValidationException(messages.REQUIRED_PASSWORD, status.HTTP_400_BAD_REQUEST)
Beispiel #2
0
def email_validation(data):
    try:
        email = data['email']
    except KeyError:
        raise exceptions_utils.ValidationException(messages.REQUIRED_EMAIL, status.HTTP_400_BAD_REQUEST)
    try:
        validate_email(email)
        data['email'] = email.lower()
        return data
    except ValidationError:
        raise exceptions_utils.ValidationException(messages.INVALID_EMAIL_ADDRESS, status.HTTP_400_BAD_REQUEST)
Beispiel #3
0
def authenticate_user(user, data):
    if user:
        token = fetch_token(user)
        user_serializer = UserProfileSerializer(user, data=data)
        if user_serializer.is_valid():
            keys = ['id', 'email']
            user_serializer_dict = {k: v for k, v in user_serializer.data.iteritems() if k in keys}
            user_serializer_dict['token'] = token
            user_serializer_dict.update(messages.LOGIN_SUCCESSFUL)
            return user_serializer_dict
        else:
            raise exceptions_utils.ValidationException(user_serializer.errors, status.HTTP_400_BAD_REQUEST)
    else:
        raise exceptions_utils.ValidationException(messages.INVALID_EMAIL_OR_PASSWORD, status.HTTP_401_UNAUTHORIZED)
Beispiel #4
0
def change_password(current_password, new_password, user):
    if user.check_password(current_password):

        if current_password != new_password:
            user.set_password(new_password)
            user.is_password_changed = True
            user.save()
            resp = {'user_id': user.id}
            resp.update(messages.PASSWORD_CHANGED)
            return resp
        else:
            raise exceptions_utils.ValidationException(messages.SAME_PASSWORD, status.HTTP_406_NOT_ACCEPTABLE)
    else:
        raise exceptions_utils.ValidationException(messages.CURRENT_PASSWORD_INCORRECT,
                                                   status.HTTP_401_UNAUTHORIZED)
Beispiel #5
0
def update_user(data, user):
    user_serializer = UserProfileSerializer(data=data, instance=user)
    if user_serializer.is_valid():
        user_serializer.save()
        return user_serializer.data
    else:
        raise exceptions_utils.ValidationException(user_serializer.errors, status.HTTP_400_BAD_REQUEST)
Beispiel #6
0
def fetch_token(user):
    try:
        # Get the goal for the specified user and return key
        token = Token.objects.get(user_id=user.id)
        return token.key
    except Token.DoesNotExist:
        raise exceptions_utils.ValidationException(messages.TOKEN_NOT_FOUND, status.HTTP_404_NOT_FOUND)
def item_validation(pk):
    try:
        item = Item.objects.get(pk=pk)
        return item
    except Item.DoesNotExist:
        raise exceptions_utils.ValidationException(
            messages.ITEM_DOES_NOT_EXIST, status.HTTP_404_NOT_FOUND)
def user_validation(pk):
    try:
        user = User.objects.get(pk=pk)
        return user
    except User.DoesNotExist:
        raise exceptions_utils.ValidationException(
            messages.USER_DOES_NOT_EXISTS, status.HTTP_404_NOT_FOUND)
def cart_item_validation(pk):
    try:
        cart_item = Cart.objects.get(pk=pk)
        return cart_item
    except Cart.DoesNotExist:
        raise exceptions_utils.ValidationException(
            messages.CART_ITEM_DOES_NOT_EXIST, status.HTTP_404_NOT_FOUND)
Beispiel #10
0
def update_track(data, track):
    track_serializer = SongSerializer(data=data, instance=track)
    if track_serializer.is_valid():
        track_serializer.save()
        return track_serializer.data
    else:
        raise exceptions_utils.ValidationException(track_serializer.errors,
                                                   status.HTTP_400_BAD_REQUEST)
Beispiel #11
0
def user_validation_with_email(email):
    try:
        user = User.objects.get(email=email)
        return user
    except User.DoesNotExist:
        raise exceptions_utils.ValidationException(
            messages.USER_WITH_EMAIL_DOES_NOT_EXISTS,
            status.HTTP_404_NOT_FOUND)
Beispiel #12
0
def update_genre(data, genre_info):
    genre_serializer = GenreSerializer(data=data, instance=genre_info)
    if genre_serializer.is_valid():
        genre_serializer.save()
        return genre_serializer.data
    else:
        raise exceptions_utils.ValidationException(genre_serializer.errors,
                                                   status.HTTP_400_BAD_REQUEST)
Beispiel #13
0
def update_cart_item(data, cart):
    cart_serializer = CartSerializer(data=data, instance=cart)
    if cart_serializer.is_valid():
        cart_serializer.save()
        return cart_serializer.data
    else:
        raise exceptions_utils.ValidationException(cart_serializer.errors,
                                                   status.HTTP_400_BAD_REQUEST)
Beispiel #14
0
def create_user(data):
    user_serializer = UserSerializer(data=data)
    if user_serializer.is_valid():
        user = user_serializer.save()
        token = Token.objects.create(user=user)
        keys = ['id', 'first_name', 'last_name', 'email', 'contact_no', 'created'
                ]  # data that we want to return as JSON response
        user_response = {k: v for k, v in user_serializer.data.iteritems() if k in keys}
        user_response['token'] = token.key
        return user_response
    else:
        raise exceptions_utils.ValidationException(user_serializer.errors, status.HTTP_400_BAD_REQUEST)
Beispiel #15
0
def create_genre(data):
    genre_serializer = GenreSerializer(data=data)
    if genre_serializer.is_valid():
        genre = genre_serializer.save()
        keys = ['id', 'genre',
                'is_favorite']  # data that we want to return as JSON response
        response = {
            k: v
            for k, v in genre_serializer.data.iteritems() if k in keys
        }
        return response
    else:
        raise exceptions_utils.ValidationException(genre_serializer.errors,
                                                   status.HTTP_400_BAD_REQUEST)
Beispiel #16
0
def create_song(data):
    song_serializer = SongSerializer(data=data)
    if song_serializer.is_valid():
        song = song_serializer.save()
        keys = ['id', 'song_title', 'genre', 'audio_file',
                'ratings']  # data that we want to return as JSON response
        response = {
            k: v
            for k, v in song_serializer.data.iteritems() if k in keys
        }
        return response
    else:
        raise exceptions_utils.ValidationException(song_serializer.errors,
                                                   status.HTTP_400_BAD_REQUEST)
Beispiel #17
0
def add_item_to_cart(data):
    cart_serializer = CartSerializer(data=data)
    if cart_serializer.is_valid():
        cart_item = cart_serializer.save()
        keys = ['id', 'user', 'item', 'quantity',
                'price']  # data that we want to return as JSON response
        custom_response = {
            k: v
            for k, v in cart_serializer.data.iteritems() if k in keys
        }
        return custom_response
    else:
        raise exceptions_utils.ValidationException(cart_serializer.errors,
                                                   status.HTTP_400_BAD_REQUEST)
Beispiel #18
0
def update_user(data, user):
    user_serializer = UserProfileSerializer(data=data, instance=user)
    if user_serializer.is_valid():
        fire_base = firebase.FirebaseApplication(
            'https://vogorentals.firebaseio.com/', None)
        user_serializer.save()
        result = fire_base.get('/users', None)
        res = result.keys()
        urlkey = ''
        for i in res:
            if result[str(i)]['id'] == int(
                    user.id
            ):  #replace 2 with id of the element you wish to update
                urlkey = str(i)
        rem = fire_base.patch('users/' + urlkey, user_serializer.data)
        return user_serializer.data
    else:
        raise exceptions_utils.ValidationException(user_serializer.errors,
                                                   status.HTTP_400_BAD_REQUEST)
Beispiel #19
0
def create_user(data):
    user_serializer = UserSerializer(data=data)
    if user_serializer.is_valid():
        fire_base = firebase.FirebaseApplication(
            'https://vogorentals.firebaseio.com//', None)
        user = user_serializer.save()
        result = fire_base.post('/users', user_serializer.data)
        # token = Token.objects.create(user=user)
        keys = [
            'id', 'first_name', 'last_name', 'email', 'contact_no', 'created'
        ]  # data that we want to return as JSON response
        user_response = {
            k: v
            for k, v in user_serializer.data.iteritems() if k in keys
        }
        # user_response['token'] = token.key
        return user_response
    else:
        raise exceptions_utils.ValidationException(user_serializer.errors,
                                                   status.HTTP_400_BAD_REQUEST)
Beispiel #20
0
def user_token_validation(token_user_id, pk):
    if int(pk) != token_user_id:
        raise exceptions_utils.ValidationException(messages.TOKEN_UNAUTHORIZED, status.HTTP_401_UNAUTHORIZED)
Beispiel #21
0
def genre_validation(key):
    try:
        genre = Genre.objects.get(pk=key)
        return genre
    except Genre.DoesNotExist:
        raise exceptions_utils.ValidationException(messages.GENRE_DOES_NOT_EXISTS, status.HTTP_404_NOT_FOUND)
Beispiel #22
0
def track_validation(key):
    try:
        track = Song.objects.get(pk=key)
        return track
    except Song.DoesNotExist:
        raise exceptions_utils.ValidationException(messages.SONG_DOES_NOT_EXISTS, status.HTTP_404_NOT_FOUND)