about summary refs log tree commit diff
path: root/uploader
diff options
context:
space:
mode:
authorFrederick Muriuki Muriithi2025-11-05 13:44:27 -0600
committerFrederick Muriuki Muriithi2025-11-05 13:55:56 -0600
commit2ce097edcb302f2498b25137f0afb7eed52c858e (patch)
tree495b480ca0226c2a605466fb9a444e905f94ee71 /uploader
parenteace30dd6449d77fee7a01a0edc674aacc474d5d (diff)
downloadgn-uploader-2ce097edcb302f2498b25137f0afb7eed52c858e.tar.gz
Provide default success handler for background jobs.
Diffstat (limited to 'uploader')
-rw-r--r--uploader/background_jobs.py5
-rw-r--r--uploader/templates/background-jobs/default-success-page.html17
2 files changed, 19 insertions, 3 deletions
diff --git a/uploader/background_jobs.py b/uploader/background_jobs.py
index dc9f837..d33c498 100644
--- a/uploader/background_jobs.py
+++ b/uploader/background_jobs.py
@@ -56,7 +56,7 @@ def register_job_handlers(job: str):
         return getattr(module, _parts[-1])
 
     metadata = job["metadata"]
-    if metadata["success_handler"]:
+    if metadata.get("success_handler"):
         _success_handler = __load_handler__(metadata["success_handler"])
         try:
             _error_handler = __load_handler__(metadata["error_handler"])
@@ -76,8 +76,7 @@ def handler(job: dict, handler_type: str) -> HandlerType:
     ).get(handler_type)
     if bool(_handler):
         return _handler(job)
-    raise Exception(# pylint: disable=[broad-exception-raised]
-        f"No '{handler_type}' handler registered for job type: {_job_type}")
+    return render_template("background-jobs/default-success-page.html", job=job)
 
 
 error_handler = partial(handler, handler_type="error")
diff --git a/uploader/templates/background-jobs/default-success-page.html b/uploader/templates/background-jobs/default-success-page.html
new file mode 100644
index 0000000..5732456
--- /dev/null
+++ b/uploader/templates/background-jobs/default-success-page.html
@@ -0,0 +1,17 @@
+{%extends "phenotypes/base.html"%}
+{%from "flash_messages.html" import flash_all_messages%}
+
+{%block title%}Background Jobs: Success{%endblock%}
+
+{%block pagetitle%}Background Jobs: Success{%endblock%}
+
+{%block contents%}
+{{flash_all_messages()}}
+
+<div class="row">
+  <p>Job <strong>{{job.job_id}}</strong>,
+    {%if job.get("metadata", {}).get("job-type")%}
+    of type '<em>{{job.metadata["job-type"]}}</em>
+    {%endif%}' completed successfully.</p>
+</div>
+{%endblock%}