На странице html-сообщения пользователь может вводить различные поля и нажимать «Отправить»,
Мой код router.clj выглядит так
(POST "/postGO" [ post-title post-input post-tags :as request ]
(def email (get-in request [:session :ze-auth-email]))
;; connect to datomic and write in the request
(dbm/add-ze-post post-title post-input post-tags email) ;; db insert
{:status 200,
:body "successfully added the post to the database",
:headers {"Content-Type" "text/plain"}}) ;;generic return page
Это работает хорошо, но я хочу перенаправить пользователя на страницу, которая может показать им загруженный пост. Для этого было бы очень полезно иметь eid объекта, только что совершившего транзакцию.
;; code from my dbm file for playing directly with the database
;; id est: the db transact code
(defn add-ze-blurb [title, content, tags, useremail]
(d/transact conn [{:db/id (d/tempid :db.part/user),
:post/title title,
:post/content content,
:post/tag tags,
:author/email useremail}]))
Есть ли способ заставить datomic вернуть eid, как только что-то будет успешно добавлено в БД, или мне следует использовать другой запрос сразу после этого, чтобы убедиться, что он там?