def check_like(user_id, film_id): db = DbManager() try: db.open().query(Like).filter(Like.user_id == user_id, Like.film_id == film_id).one() except: like_film(user_id, film_id) return db.close()
def like_a_tvshow(user_id, api_id): # LIKE A TVSHOW # return a Like Model if success, if already exist return None tvshow = get_tvshow_by_api_id(api_id) db = DbManager() try: db.open().query(Like).filter(Like.user_id == user_id, Like.tvshow_id == tvshow.id).one() return None except: like = Like() like.user_id = user_id like.tvshow_id = tvshow.id db.save(like) return like
def get_user_by_id(id): # GET USER BY ID db = DbManager() try: return db.open().query(User).filter(User.id == id).one() except: return None
def get_movie_by_id(movie_id): try: db = DbManager() movie = db.open().query(Movie).filter(Movie.api_id == movie_id).one() return movie except: pass
def search_movie_by_url(url): try: db = DbManager() movie = db.open().query(Movie).filter(Movie.url == url).one() return movie except: pass
def search_film_by_name(query): db = DbManager() films = db.open().query(Film).filter(Film.name.like( "%{}%".format(query))).all() db.close() return films
def get_user_likes_movie_id(user_id): db = DbManager() like_ids = [] likes = db.open().query(Like).filter(Like.user_id == user_id).all() for like in likes: like_ids.append(like.tvshow.api_id) return like_ids
def delete_quote(quote_id): try: db = DbManager() quote = db.open().query(Quote).filter(Quote.id == quote_id).one() return db.delete(quote) except: pass
def delete_task(task_id): print('-------------------------------------------') print(task_id) db = DbManager() task = db.open().query(Task).filter(Task.id == task_id).one() task = db.delete(task) db.close() return task
def delete_project(project_id): db = DbManager() # project = db.delete(get_project(project_id)) project = db.open().query(Project).filter(Project.id == project_id).one() project = db.delete(project) db.close() return project
def search_by_user_or_email(query): try: db = DbManager() return db.open().query(User).filter( or_(User.name.like('%{}%'.format(query)), User.email.like('%{}%'.format(query)))).all() except: pass
def delete_like(movie_id): try: db = DbManager() show = db.open().query(Like).filter(Like.id == movie_id).one() like = db.delete(show) return like except: raise
def get_user_like(user_id): try: db = DbManager() likes = db.open().query(Like).filter(Like.user_id == user_id).order_by( desc(Like.created_at)).all() return likes except: pass
def get_user_likes(user_id): # GET USER LIKES # it gonna be return array-of-TVShow or empty-array db = DbManager() tvshows = [] likes = db.open().query(Like).filter(Like.user_id == user_id).all() for like in likes: tvshows.append(like.tvshow) return tvshows
def get_show(query): db = DbManager() url = API_URL.format(query) data = get_request(url) movies = [] for obj in data: movie = Movie() movie.parse_json(obj) try: db.open().query(Movie).filter(Movie.url == movie.url).one() except: db.save(movie) movies.append(movie) return movies
def unlike_a_tvshow(user_id, api_id): # UNLIKE TVSHOW tvshow = get_tvshow_by_api_id(api_id) db = DbManager() try: like = db.open().query(Like).filter(Like.user_id == user_id, Like.tvshow_id == tvshow.id).one() db.delete(like) except: return False
def create__like(user_id, show_id): db = DbManager() like = Like() check = db.open().query(Like).filter(Like.user_id == user_id).filter(Like.show_id == show_id).all() if len(check) == 0: like.show_id = show_id like.user_id = user_id return db.save(like) return False
def get_tvshow_by_api_id(api_id): db = DbManager() try: tvshow = db.open().query(TVShow).filter(TVShow.api_id == api_id).one() return tvshow except: tvshow = TVShow() url = TVMAZE_GET_URL.format('shows', api_id) response = get_request(url) tvshow.parse_json(response) db.save(tvshow) return tvshow
def get_tvshow_by_url(tvshow_url): DB = DbManager() try: tvshow = DB.open().query(TVShow).filter(TVShow.url == tvshow_url).one() DB.close() return tvshow except: DB = DbManager() data = get_request(tvshow_url) tvshow = TVShow() tvshow.parse_json(data) DB.save(tvshow) DB.close() return tvshow
def search_tvshows(keyword): # always search from api first because it's all inclusive, search from db probably get less result db = DbManager() tvshows = [] url = TVMAZE_SEARCH_URL.format('shows', keyword) for results in get_request(url): try: tvshow = db.open().query(TVShow).filter( TVShow.api_id == results['show']['id']).one() except: tvshow = TVShow() tvshow.parse_json(results['show']) db.save(tvshow) tvshows.append(tvshow) return tvshows
def create_like(user_id, movie_id): try: db = DbManager() movie = db.open().query(Movie).filter(Movie.api_id == movie_id).one() like = Like() like.user_id = user_id like.movie_id = movie.id db.save(like) return like except: pass
def do_login(email, password): error_message = [] db = DbManager() # if user by email is exist try: user = db.open().query(User).filter(User.email == email).one() # check if password is match encoded_pass = password.encode('UTF-8') encrypted_pass = bcrypt.checkpw(encoded_pass, bcrypt.gensalt()) if user.password == password: return user else: error_message.append('Incorect password') except: error_message.append("User doesn't exist") return error_message
def like_tvshow(user_id, tvshow_id): user = get_user_by_id(user_id) tvshow_url = TVMAZE_URL.format('shows', tvshow_id) tvshow = get_tvshow_by_url(tvshow_url) DB = DbManager() try: exist = DB.open().query(Like).filter(Like.user_id == user_id, Like.tvshow_id == tvshow.id).one() return exist except: like = Like() like.user = user like.tvshow = tvshow DB.save(like) return like
def get_all_quotes(): db = DbManager() return db.open().query(Quote).all()
def get_user_by_email(user_email): db = DbManager() return db.open().query(User).filter(User.email == user_email).one()
def get_user_by_name(name): db = DbManager() return db.open().query(User).filter(User.name == name).one()
def get_user_by_id(user_id): db = DbManager() return db.open().query(User).filer(User.id == user_id).one()
def delete_quote(quote_id): db = DbManager() quote = db.open().query(Quote).filter(Quote.id == quote_id).one() quote = db.delete(quote) db.close() return quote
def get_all_quotes_for(user_id): db = DbManager() return db.open().query(Quote).filter(Quote.user_id == user_id).all()
def get_all_quotes(): db = DbManager() return db.open().query(Quote).order_by(desc(Quote.created_at)).all()