In /lib/navbar.jst rework feedback to be similar to /contact/index.html.jst way
[ndcode_site.git] / api / feedback / get_draft.json.jst
diff --git a/api/feedback/get_draft.json.jst b/api/feedback/get_draft.json.jst
new file mode 100644 (file)
index 0000000..210982a
--- /dev/null
@@ -0,0 +1,25 @@
+return async env => {
+  let post_request = await _require('/_lib/post_request.jst')
+  let get_session = await _require('/_lib/get_session.jst')
+
+  await post_request(
+    // env
+    env,
+    // handler
+    async () => {
+      let transaction = await env.site.database.Transaction()
+      try {
+        let root = await transaction.get({})
+        let session = await get_session(env, root)
+
+        let feedback_draft = await session.get_json('feedback_draft')
+        if (feedback_draft === undefined || env.now >= feedback_draft.expires)
+          feedback_draft = null
+        return feedback_draft
+      }
+      finally {
+        transaction.rollback()
+      }
+    }
+  )
+}