From 86701d273baab05392a9fa6b764d030c32d137ee Mon Sep 17 00:00:00 2001
From: Guillaume Schurck <g.schurck@gmail.com>
Date: Mon, 21 Nov 2022 23:11:41 +0100
Subject: [PATCH] add dynamic caching for software merge and increase caching
 time

---
 sg-backend/main.py | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

diff --git a/sg-backend/main.py b/sg-backend/main.py
index 006d15e..09f417d 100644
--- a/sg-backend/main.py
+++ b/sg-backend/main.py
@@ -46,14 +46,14 @@ app.add_middleware(
 
 
 @app.get("/software")
-@cache(expire=60, key_builder=lambda *args, **kwargs: "software")
+@cache(expire=300, key_builder=lambda *args, **kwargs: "software")
 async def software():
     results = driver.get_softwares()
     return {"softwares": json.loads(json.dumps(results))}
 
 
 @app.get("/software-graph")
-@cache(expire=60, key_builder=lambda *args, **kwargs: "software-graph")
+@cache(expire=300, key_builder=lambda *args, **kwargs: "software-graph")
 async def software():
     nodes = driver.get_nodes()
     jnodes = json.loads(json.dumps(nodes))
@@ -87,9 +87,15 @@ async def software():
     return jsondata
 
 
+def dynamic_software_merge_key_builder(func, *args, **kwargs):
+    search: SoftwareSearch = kwargs['kwargs']['search']
+    key = f"software-merge-{search.software1}-{search.software2}"
+    return key
+
+
 @app.post("/software-search")
+@cache(expire=300, key_builder=dynamic_software_merge_key_builder)
 async def software_search(search: SoftwareSearch):
-    print(search.software1, search.software2)
     res = driver.get_softwares_shortest_path(search)
     return {"softwares": res}
 
-- 
GitLab