From b9a1b279fafc52c606c776350365ccf587646e9b Mon Sep 17 00:00:00 2001 From: Frank Sauerburger <frank@sauerburger.com> Date: Sun, 28 Aug 2022 18:28:53 +0200 Subject: [PATCH] Make title-by-id endpoint multi-query --- Makefile | 2 +- app.py | 34 +++++++++++++++++++++++----------- 2 files changed, 24 insertions(+), 12 deletions(-) diff --git a/Makefile b/Makefile index ab14b38..3648366 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,4 @@ -TAG=0.4.0 +TAG=0.5.0 build: DOCKER_DEFAULT_PLATFORM=linux/amd64 docker build -t gitlab.sauerburger.com:5049/frank/wakefield-movie-recommender:$(TAG) . diff --git a/app.py b/app.py index 923cb3e..d312230 100644 --- a/app.py +++ b/app.py @@ -50,18 +50,30 @@ def suggest(): } -@app.route("/titles/<int:mid>") -def byid(mid): - """Show healthz status""" - if mid not in movie_titles: - abort(404) +@app.route("/titles/<mids>") +def byid(mids): + """Load movie data by id""" + results = [] + + for mid in mids.split(","): + try: + mid = int(mid) + if mid not in movie_titles: + raise ValueError() + except ValueError: + results.append({}) + continue + + res_title, res_year = movie_titles[mid] + data = { + "id": mid, + "title": res_title, + "year": res_year + } + results.append(data) + + return {"movies": results} - res_title, res_year = movie_titles[mid] - return { - "id": mid, - "title": res_title, - "year": res_year - } @app.route("/titles/healthz") def healthz(): -- GitLab