Пример #1
0
    def delete_by_id(genre_id: int):
        genre = GenreModel.get_by_id(genre_id)
        if not genre:
            return custom_response({'error': 'genre not found'}, 404)

        genre.delete()
        return custom_response({'message': 'deleted'}, 204)
Пример #2
0
 def get_by_title(title: str):
     if not title:
         return custom_response({'error': 'no title provided'}, 400)
     movie = MovieModel.get_by_title(title)
     if not movie:
         return custom_response({'error': 'movie not found'}, 404)
     data = movie_schema.dump(movie, many=True)
     return custom_response(data, 200)
Пример #3
0
    def get_by_id(rental_id: int):

        rental = RentalModel.get_by_id(rental_id)
        if not rental:
            return custom_response({'error': 'not found'}, 404)
        data = rental_schema.dump(rental)
        if data.get('user_id') != RentalService.get_user():
            return custom_response({'error': 'permission denied'}, 400)
        return custom_response(data, 200)
Пример #4
0
    def update(movie_id: int, data):
        movie = MovieModel.get_by_id(movie_id)
        if not movie:
            return custom_response({'error': 'not found'}, 404)

        movie.update(data)

        data = movie_schema.dump(movie)
        return custom_response(data, 200)
Пример #5
0
    def update(genre_id: int, data):
        genre = GenreModel.get_by_id(genre_id)
        if not genre:
            return custom_response({'error': 'not found'}, 404)

        genre.update(data)

        data = genre_schema.dump(genre)
        return custom_response(data, 200)
Пример #6
0
    def create(req_data):

        req_data['user_id'] = RentalService.get_user()
        try:
            data = rental_schema.load(req_data)
        except ValidationError as e:
            return custom_response(e.messages, 400)
        rental = RentalModel(data)
        rental.save()
        data = rental_schema.dump(rental)
        return custom_response(data, 201)
Пример #7
0
    def return_movie(req_data):

        rental = RentalModel.get_by_id(req_data["rental_id"])
        if not rental:
            return custom_response({'error': 'rental not found'}, 404)
        data = rental_schema.dump(rental)
        if data.get('user_id') != RentalService.get_user():
            return custom_response({'error': 'permission denied'}, 400)
        rental = rental.return_movie()

        data = rental_schema.dump(rental)
        return custom_response(data, 200)
Пример #8
0
    def login(data):

        if not data.get('email') or not data.get('password'):
            return custom_response(
                {'error': 'you need email and password to sign in'}, 400)
        user = UserModel.get_user_by_email(data.get('email'))
        if not user:
            return custom_response({'error': 'invalid credentials'}, 400)
        if not user.check_hash(data.get('password')):
            return custom_response({'error': 'invalid credentials'}, 400)
        ser_data = user_schema.dump(user)
        token = Auth.generate_token(ser_data.get('id'))
        return custom_response({'jwt_token': token}, 200)
Пример #9
0
    def create(data):

        user_in_db = UserModel.get_user_by_email(data.get('email'))
        if user_in_db:
            message = {
                'error':
                'User already exist, please supply another email address'
            }
            return custom_response(message, 400)

        user = UserModel(data)
        user.save()
        ser_data = user_schema.dump(user)
        token = Auth.generate_token(ser_data.get('id'))
        return custom_response({'jwt_token': token}, 201)
Пример #10
0
    def update(rental_id: int, req_data):

        rental = RentalModel.get_by_id(rental_id)
        if not rental:
            return custom_response({'error': 'not found'}, 404)
        data = rental_schema.dump(rental)
        if data.get('user_id') != RentalService.get_user():
            return custom_response({'error': 'permission denied'}, 400)

        try:
            data = rental_schema.load(req_data, partial=True)
        except ValidationError as e:
            return custom_response(e.messages, 400)
        rental.update(data)

        data = rental_schema.dump(rental)
        return custom_response(data, 200)
Пример #11
0
    def delete():

        user = UserModel.get_one_user(UserService.get_user())
        user.delete()
        return custom_response({'message': 'deleted'}, 204)
Пример #12
0
    def update(data):

        user = UserModel.get_one_user(UserService.get_user())
        user.update(data)
        ser_user = user_schema.dump(user)
        return custom_response(ser_user, 200)
Пример #13
0
    def get_logged_in_user():

        user = UserModel.get_one_user(UserService.get_user())
        ser_user = user_schema.dump(user)
        return custom_response(ser_user, 200)
Пример #14
0
 def get_all():
     movies = MovieModel.get_all_movies()
     data = movie_schema.dump(movies, many=True)
     return custom_response(data, 200)
Пример #15
0
    def create(data):

        movie = MovieModel(data)
        movie.save()
        data = movie_schema.dump(movie)
        return custom_response(data, 201)
Пример #16
0
 def delete_by_id(movie_id: int):
     movie = MovieModel.get_by_id(movie_id)
     if not movie:
         return custom_response({'error': 'movie not found'}, 404)
     movie.delete()
     return custom_response({'message': 'deleted'}, 204)
Пример #17
0
    def get_all():

        rentals = RentalModel.get_all_rentals()
        data = rental_schema.dump(rentals, many=True)
        return custom_response(data, 200)
Пример #18
0
    def create(data):

        genre = GenreModel(data)
        genre.save()
        data = genre_schema.dump(genre)
        return custom_response(data, 201)
Пример #19
0
 def get_all():
     genres = GenreModel.get_all_genres()
     data = genre_schema.dump(genres, many=True)
     return custom_response(data, 200)
Пример #20
0
 def get_movies(genre_id: int):
     genre = GenreModel.get_by_id(genre_id)
     if not genre:
         return custom_response({'error': 'not found'}, 404)
     data = movie_schema.dump(genre.movies, many=True)
     return custom_response(data, 200)