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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)