aboutsummaryrefslogtreecommitdiffstats
path: root/backend/routes
diff options
context:
space:
mode:
authorGravatar Joe Banks <[email protected]>2020-10-31 02:11:27 +0000
committerGravatar Joe Banks <[email protected]>2020-10-31 02:11:27 +0000
commit2438fd6077e22ae412f6685c0434dce45b3fe1af (patch)
treed5264cd97e2a836407c20689f9686bae57cae88c /backend/routes
parentAdd some basic routes (diff)
Add discoverable forms URL
Diffstat (limited to 'backend/routes')
-rw-r--r--backend/routes/forms/discover.py29
1 files changed, 29 insertions, 0 deletions
diff --git a/backend/routes/forms/discover.py b/backend/routes/forms/discover.py
new file mode 100644
index 0000000..d06b607
--- /dev/null
+++ b/backend/routes/forms/discover.py
@@ -0,0 +1,29 @@
+"""
+Return a list of all publicly discoverable forms to unauthenticated users.
+"""
+
+from starlette.responses import JSONResponse
+
+from backend.route import Route
+
+
+class DiscoverableFormsList(Route):
+ """
+ List all discoverable forms that should be shown on the homepage.
+ """
+
+ name = "discoverable_forms_list"
+ path = "/discoverable"
+
+ async def get(self, request):
+ forms = []
+
+ for form in request.state.db.forms.find({
+ "discoverable": True
+ }):
+ form["_id"] = str(form["_id"])
+ forms.append(form)
+
+ return JSONResponse(
+ forms
+ )