Ejemplo n.º 1
0
def add_user_booking():
    movie_id = request.form['movieid']
    user_id = request.form['userid']
    showtime_id = request.form['showtimeid']

    add_booking(user_id, showtime_id, movie_id)
    return nice_json(get_bookings())
Ejemplo n.º 2
0
def hello():
    return nice_json({
        "uri": "/",
        "subresource_uris": {
            "bookings": "/bookings",
            "booking": "/bookings/<username>"
        }
    })
Ejemplo n.º 3
0
def hello():
    return nice_json({
        "uri": "/",
        "subresource_uris": {
            "showtimes": "/showtimes",
            "showtime": "/showtimes/<date>"
        }
    })
Ejemplo n.º 4
0
def update_movie(movieid):
    movie = {'rating': request.form['rating']}
    if not movieid in get_movies_all().iterkeys(
    ) or movie['rating'] == None or movieid == None:
        abort(404)
    else:
        update_movie_record(_movie_id=movieid, _rating=float(movie['rating']))
        return nice_json(get_movies_all()[movieid])
Ejemplo n.º 5
0
def movie_info(movieid):
    if movieid not in get_movies_all().iterkeys():
        raise NotFound

    result = get_movie(movieid)
    # result["uri"] = "/movies/{}".format(movieid)

    return nice_json(result)
Ejemplo n.º 6
0
def user_create():
    _id = request.form.get('id')
    _name = request.form.get('name')
    if not _id == None and not _name == None:
        create_user(_id, _name)
        return nice_json(get_users()[_id])
    else:
        abort(404)
Ejemplo n.º 7
0
def delete_user_booking():
    _user_id, _showtime_id, _movie_id = request.form['userid'], request.form[
        'showtimeid'], request.form['movieid']
    if _user_id == None and _showtime_id == None and _movie_id == None:
        raise NotFound
    else:
        delete_booking_by_id(_user_id, _showtime_id, _movie_id)
        return nice_json(get_bookings())
Ejemplo n.º 8
0
def hello():
    return nice_json({
        "uri": "/",
        "subresource_uris": {
            "users": "/users",
            "user": "******",
            "create user": "******",
            "bookings": "/users/<username>/bookings",
            "suggested": "/users/<username>/suggested"
        }
    })
Ejemplo n.º 9
0
def user_suggested(username):
    """
    Returns movie suggestions. The algorithm returns a list of 3 top ranked
    movies that the user has not yet booked.
    :param username:
    :return: Suggested movies
    """
    response = requests.get(
        'http://localhost:5001/movies/rank/{}'.format(username))
    if response.status_code == 200:
        return nice_json(response.json())
    else:
        raise ServiceUnavailable("The Movies Service is unavailable")
Ejemplo n.º 10
0
def movie_record():
    if request.method == 'POST':
        id = str(uuid.uuid4())
        movie = {
            'title': request.form['title'],
            'rating': request.form['rating'],
            'director': request.form['director'],
            'id': id,
        }

        create_movie_record(movie['director'], movie['rating'], movie['title'],
                            movie['id'])

    return nice_json(get_movies_all())
Ejemplo n.º 11
0
def user_bookings(username):
    """
    Gets booking information from the 'Bookings Service' for the user, and
     movie ratings etc. from the 'Movie Service' and returns a list.
    :param username:
    :return: List of Users bookings
    """
    user_bookings = None
    # reply = requests.get('http://localhost:5003/bookings')
    # reply = reply.json()
    # return nice_json(reply)

    if username not in get_users().iterkeys():
        raise NotFound("User '{}' not found.".format(username))

    try:
        users_bookings = requests.get(
            "http://localhost:5003/bookings/{}".format(username))
    except requests.exceptions.ConnectionError:
        raise ServiceUnavailable("The Bookings service is unavailable.")

    if users_bookings.status_code == 404:
        raise NotFound("No bookings were found for {}".format(username))

    users_bookings = requests.get(
        "http://localhost:5003/bookings/{}".format(username))
    users_bookings = users_bookings.json()
    print "Done"

    # For each booking, get the rating and the movie title
    result = {}
    for date, movies in users_bookings.iteritems():
        result[date] = []
        for movieid in movies:
            try:
                movies_resp = requests.get(
                    "http://localhost:5001/movies/{}".format(movieid))
                movies_resp = movies_resp.json()
                result[date].append({
                    "title": movies_resp["title"],
                    "rating": movies_resp["rating"],
                    "uri": movies_resp["uri"],
                    "id": movies_resp["id"]
                })
            except requests.exceptions.ConnectionError:
                raise ServiceUnavailable("The Movie service is unavailable.")

    return nice_json(result)
Ejemplo n.º 12
0
def order_movie_():
    movie_id = request.form['movie_id']
    showtime_id = request.form['showtime_id']
    user_id = request.form['user_id']

    payload = {
        'movieid': movie_id,
        'showtimeid': showtime_id,
        'userid': user_id
    }

    movie_status = requests.get('http://localhost:5001/movies/{}'.format(movie_id))
    if movie_status.status_code == 200:
        order = requests.post('http://localhost:5003/bookings',data = payload)
        if order.status_code == 200:
            return nice_json(order.json())
    else:
        abort(404)
Ejemplo n.º 13
0
def movie_ranking(username):
    limit = 3
    allmovies = Movies.query.order_by(Movies.rating.desc()).all()
    movies = list()
    userbookings = requests.get(
        "http://localhost:5000/users/{}/bookings".format(username))
    userbookings = userbookings.json()
    ignore = []
    for showtime in userbookings.iterkeys():
        ignore += [item['id'] for item in userbookings[showtime]]
        # user_movies = userbookings[showtime]
        # print user_movies
        # for i in range(0,len(allmovies)):
        #     status = True
        #     for j in range(0,len(user_movies)):
        #         if allmovies[i].movie_id == user_movies[j]['id']:
        #             status = False
        #             ignore.append(user_movies[j]['id'])
        #     if not status == False:
        #         state = True
        #         for count in range(0,len(ignore)):
        #             if allmovies[i].movie_id == ignore[count]:
        #                 state = False
        #         if not state == False:
        #             movies.append(allmovies[i])
    print 'ignore: ' + str(ignore)
    movies = Movies.query.order_by(Movies.rating.desc()).filter(
        Movies.movie_id.notin_(ignore)).all()
    if len(movies) > 3:
        movies = movies[:limit]
    return nice_json({
        'movies': [{
            'title': movie.title,
            'id': movie.movie_id,
            'rating': movie.rating,
            'director': movie.director
        } for movie in movies]
    })
Ejemplo n.º 14
0
def booking_record(username):
    if username not in get_bookings().iterkeys():
        return not_found()

    return nice_json(get_bookings()[username])
Ejemplo n.º 15
0
def booking_list():
    return nice_json(get_bookings())
Ejemplo n.º 16
0
def user_statuses():
    data = obtain_user_statuses()
    return nice_json(data)
Ejemplo n.º 17
0
def user_record(username):
    username = username.encode('ascii','ignore')
    if username not in get_users().iterkeys():
        raise NotFound("User '{}' not found.".format(username))

    return nice_json(get_user_by_id(username))
Ejemplo n.º 18
0
def delete_movie(movieid):
    if not movieid == None and movieid in get_movies_all().iterkeys():
        return nice_json(delete_movie_record(movieid))
        # return _id
    else:
        abort(404)
Ejemplo n.º 19
0
def showtimes_record(date):
    if int(date) not in get_showtimes().iterkeys():
        raise NotFound
    return nice_json(get_showtimes()[int(date)])
Ejemplo n.º 20
0
def showtimes_list():
    return nice_json(get_showtimes())
Ejemplo n.º 21
0
def user_record(username):
    username = username.encode('ascii', 'ignore')
    if username not in get_users().iterkeys():
        raise NotFound

    return nice_json(get_user_by_id(username))
Ejemplo n.º 22
0
def users_list():
    return nice_json(get_users())
Ejemplo n.º 23
0
def root():
    return nice_json(ROOT_MOVIES)