diff --git a/backend/src/main.py b/backend/src/main.py
index b6da923..450dc85 100644
--- a/backend/src/main.py
+++ b/backend/src/main.py
@@ -14,15 +14,63 @@ db_params = {
db = psql.connect(**db_params)
-@app.route("/")
-def test():
+@app.route("/movies")
+def movies():
c = db.cursor()
- try:
- c.execute('SELECT * FROM movies')
- except Exception:
- db.rollback()
- return "Failed to fetch table 'movies'"
- res = c.fetchmany(10)
+ try:
+ c.execute('SELECT uuid, name, scheduled_datetime, movie_details, image_url, max_passes FROM movies')
+ except Exception:
+ return {
+ "error": "Failed to list movies",
+ "result": None
+ }, 503
+
+ res = c.fetchall()
c.close()
- return "
Hello, World! test data:
" + "
".join(str(i) for i in res) + "
"
+
+ return {
+ "error": "",
+ "result": [
+ {
+ "uuid": i[0],
+ "name": i[1],
+ "scheduled_datetime": i[2].strftime("%Y-%m-%d %H:%M:%S"),
+ "movie_details": i[3],
+ "image_url": i[4],
+ "max_passes": i[5]
+ } for i in res
+ ]
+ }
+
+@app.route("/movie/")
+def movie_byid(movie_uuid):
+ c = db.cursor()
+
+ try:
+ c.execute(f"SELECT name, scheduled_datetime, movie_details, image_url, max_passes FROM movies WHERE uuid='{movie_uuid}'")
+ except Exception:
+ return {
+ "error": "Failed to search for a movie",
+ "result": None
+ }, 503
+
+ res = c.fetchone()
+ c.close()
+
+ if res:
+ return {
+ "error": "",
+ "result": {
+ "name": res[0],
+ "scheduled_datetime": res[1].strftime("%Y-%m-%d %H:%M:%S"),
+ "movie_details": res[2],
+ "image_url": res[3],
+ "max_passes": res[4]
+ }
+ }
+ else:
+ return {
+ "error": f"No movie with uuid={movie_uuid} has been found",
+ "result": None
+ }, 404