|
|
@@ -0,0 +1,48 @@
|
|
|
+import json
|
|
|
+import os
|
|
|
+
|
|
|
+from fastapi import FastAPI
|
|
|
+
|
|
|
+app = FastAPI()
|
|
|
+
|
|
|
+
|
|
|
+def discover_sets():
|
|
|
+ # find all set directories
|
|
|
+ sets = []
|
|
|
+ for root, dirs, files in os.walk("data/sets"):
|
|
|
+ for dir in dirs:
|
|
|
+ sets.append(dir)
|
|
|
+
|
|
|
+ return sets
|
|
|
+
|
|
|
+
|
|
|
+@app.get("/sets")
|
|
|
+def read_sets():
|
|
|
+ sets = discover_sets()
|
|
|
+ return {"sets": sets}
|
|
|
+
|
|
|
+
|
|
|
+@app.get("/sets/{set_name}/cards")
|
|
|
+def read_item(set_name: str):
|
|
|
+ if set_name not in discover_sets():
|
|
|
+ return {"error": "Set not found"}
|
|
|
+
|
|
|
+ card_data_path = os.path.join("data", "sets", set_name, "card-data.json")
|
|
|
+
|
|
|
+ with open(card_data_path) as f:
|
|
|
+ card_data = json.load(f)
|
|
|
+
|
|
|
+ return {"data": card_data}
|
|
|
+
|
|
|
+
|
|
|
+@app.get("/sets/{set_name}/ratings")
|
|
|
+def read_item(set_name: str):
|
|
|
+ if set_name not in discover_sets():
|
|
|
+ return {"error": "Set not found"}
|
|
|
+
|
|
|
+ card_ratings_path = os.path.join("data", "sets", set_name, "card-ratings-all.json")
|
|
|
+
|
|
|
+ with open(card_ratings_path) as f:
|
|
|
+ card_data = json.load(f)
|
|
|
+
|
|
|
+ return {"data": card_data}
|