39 lines
1.1 KiB
Python
39 lines
1.1 KiB
Python
from models.movie import Movie
|
|
from lib.database.database import get_db
|
|
from lib.logger import logger
|
|
|
|
|
|
@logger.catch
|
|
def get_all_movies() -> list[Movie]:
|
|
logger.info("Getting all movies")
|
|
sql = "SELECT * FROM movies"
|
|
with get_db() as conn:
|
|
result = conn.execute(sql).df()
|
|
result_dict = result.to_dict(orient="records")
|
|
movies = []
|
|
for row in result_dict:
|
|
row["id"] = str(row["id"])
|
|
logger.debug(f"Found movie: {row}")
|
|
print("Type of name:", type(row["name"]))
|
|
movie = Movie(**row)
|
|
|
|
movies.append(movie)
|
|
|
|
return movies
|
|
|
|
return
|
|
|
|
|
|
def get_next_movie() -> Movie | None:
|
|
sql = "SELECT * FROM movies WHERE is_watched = FALSE AND showtime = CURRENT_DATE ORDER BY showtime ASC"
|
|
with get_db() as conn:
|
|
result = conn.execute(sql).fetchdf()
|
|
if result.empty:
|
|
return None
|
|
response_data = result.to_dict(orient="records")[0]
|
|
response_data["id"] = str(response_data["id"])
|
|
movie = Movie(**response_data)
|
|
return movie
|
|
|
|
return
|