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())
def hello(): return nice_json({ "uri": "/", "subresource_uris": { "bookings": "/bookings", "booking": "/bookings/<username>" } })
def hello(): return nice_json({ "uri": "/", "subresource_uris": { "showtimes": "/showtimes", "showtime": "/showtimes/<date>" } })
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])
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)
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)
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())
def hello(): return nice_json({ "uri": "/", "subresource_uris": { "users": "/users", "user": "******", "create user": "******", "bookings": "/users/<username>/bookings", "suggested": "/users/<username>/suggested" } })
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")
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())
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)
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)
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] })
def booking_record(username): if username not in get_bookings().iterkeys(): return not_found() return nice_json(get_bookings()[username])
def booking_list(): return nice_json(get_bookings())
def user_statuses(): data = obtain_user_statuses() return nice_json(data)
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))
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)
def showtimes_record(date): if int(date) not in get_showtimes().iterkeys(): raise NotFound return nice_json(get_showtimes()[int(date)])
def showtimes_list(): return nice_json(get_showtimes())
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))
def users_list(): return nice_json(get_users())
def root(): return nice_json(ROOT_MOVIES)