def decorated_function(request, user, *args, **kwargs): with db_session(strict=False): watchlist = Watchlist.select( lambda w: w.user.id == user.id).first() if not watchlist: user = User.get(id=user.id) watchlist = Watchlist(user=user, is_default=True) watchlist.movie_items.load() return f(request, user, watchlist, *args, **kwargs)
def put(self): updated_watchlists = json.loads(request.data).get("data", None) if updated_watchlists == None: raise Exception("No data sent") user = User.objects.first() new_watchlists = [] for old_watchlist in user.watchlists: new_watchlist = next( (item for item in updated_watchlists if item["id"] == str(old_watchlist.id)), None, ) if new_watchlist != None: new_watchlists.append( Watchlist( name=new_watchlist["name"], tickers=old_watchlist.tickers, columns=old_watchlist.columns, id=old_watchlist.id, date_created=old_watchlist.date_created, )) user.watchlists = new_watchlists user.save() return updated_watchlists
async def remove(request, user, watchlist, movie_id): logger.debug(movie_id) with db_session(): watchlist = Watchlist.get(id=watchlist.id) MovieItem.select(lambda m: m.imdb_id == movie_id and m.watchlist.id == watchlist.id).delete() return response.empty()
def select(id): sql = "SELECT * FROM films WHERE id = %s" values = [id] result = run_sql(sql, values)[0] user = user_repository.select(result['user_id']) film = film_repository.select(result['film_id']) watchlist_item = Watchlist(user, film, result['id']) return watchlist_item
async def add(request, user, watchlist, movie_id): logger.debug(movie_id) if not is_in_default_watchlist(movie_id, user): with db_session(): watchlist = Watchlist.get(id=watchlist.id) item = MovieItem(imdb_id=movie_id, date=datetime.now(), watchlist=watchlist) return response.empty()
def select_all(): watchlist_list = [] sql = "SELECT * FROM watchlist" results = run_sql(sql) for row in results: user = user_repository.select(row['user_id']) film = film_repository.select(row['film_id']) watchlist = Watchlist(user, film, row['id']) watchlist_list.append(watchlist) return watchlist_list
def post(self): new_watchlist = json.loads(request.data) if new_watchlist == None: raise Exception("No data sent") user = User.objects.first() watchlist = Watchlist( name=new_watchlist["name"], tickers=new_watchlist["tickers"], columns=new_watchlist["columns"], ) user.watchlists.append(watchlist) user.save() return [watchlists_to_json(user.watchlists), str(watchlist.id)]
async def seen(request, user, watchlist, movie_id): logger.debug(movie_id) with db_session(): # TODO: Catche error if does not exist watchlist = Watchlist.get(id=watchlist.id) user = User.get(id=user.id) MovieItem.select(lambda m: m.imdb_id == movie_id and m.watchlist.id == watchlist.id).delete() date_string = request.args.get("date", None) if date_string: date = datetime.strptime(date_string, "%Y-%m-%d") else: date = datetime.now() movie = MovieItem(imdb_id=movie_id, date=date, user=user) return response.empty()
def add_to_watchlist(id): user = user_repository.select(request.form['user_id']) film = film_repository.select(request.form['film_id']) film_to_list = Watchlist(user, film) watchlist_repository.save(film_to_list) return redirect('/watchlist')
def is_in_default_watchlist(imdb_id, user): return Watchlist.select( lambda w: imdb_id in w.movie_items.imdb_id and w.is_default and w.user. id == user.id).first() != None
"chain-smoking Chinese grandma goes all in at the casino, landing herself on the wrong side of luck - and in the middle of a gang war." ) film_repository.save(film5) film6 = Film( "Mank", 5, "*****", "Drama", "Follows screenwriter Herman J. Mankiewicz's tumultuous development of Orson Welles' iconic masterpiece Citizen Kane (1941)." ) film_repository.save(film6) film7 = Film("No Time To Die", 4, "***", "Action", "James Bond has left active service.") film_repository.save(film7) review1 = Review(user1, film1, 2, "Entertaining, however not very woke.") review_repository.save(review1) review2 = Review(user1, film2, 2, "It's a kid's film") review_repository.save(review2) review3 = Review(user1, film3, 5, "Gripping story of young men in the suburbs of Paris") review_repository.save(review3) watchlist1 = Watchlist(user2, film3) watchlist_repository.save(watchlist1) watchlist2 = Watchlist(user1, film1) watchlist_repository.save(watchlist2) # pdb.set_trace()