From 2e3f2d317882fab613453df8d6bb4d40d8b54d96 Mon Sep 17 00:00:00 2001 From: Josha von Gizycki Date: Sun, 21 Apr 2019 22:20:46 +0200 Subject: [PATCH] starred querying --- src/wanijo/instance/domain.clj | 12 ++++++++++++ src/wanijo/instance/routes.clj | 7 ++++++- src/wanijo/instance/view.clj | 3 +++ 3 files changed, 21 insertions(+), 1 deletion(-) diff --git a/src/wanijo/instance/domain.clj b/src/wanijo/instance/domain.clj index 8a466cd..96d638a 100644 --- a/src/wanijo/instance/domain.clj +++ b/src/wanijo/instance/domain.clj @@ -198,3 +198,15 @@ (outgoing-links! uuid) :links-in (incoming-links! uuid))) + +(neo4j/defquery is-starred + "MATCH (u:user {uuid:{user_uuid}}), + (i:instance {uuid:{uuid}}) + RETURN EXISTS((i)-[:starred_by]->(u)) AS starred") + +(defn is-starred! [uuid user-uuid] + (-> (neo4j/exec-query! is-starred + {:user_uuid user-uuid + :uuid uuid}) + first + :starred)) diff --git a/src/wanijo/instance/routes.clj b/src/wanijo/instance/routes.clj index b256533..026ecd4 100644 --- a/src/wanijo/instance/routes.clj +++ b/src/wanijo/instance/routes.clj @@ -40,7 +40,12 @@ (domain/full-instance-by-uuid! uuid)) (defn show! [uuid req] - (view/show! (instance! uuid) req)) + (let [user-uuid (-> req :session :uuid) + instance (assoc (instance! uuid) + :starred + (domain/is-starred! uuid + user-uuid))] + (view/show! instance req))) (defn form! [uuid attrs] (forms-inst/with-attributes attrs)) diff --git a/src/wanijo/instance/view.clj b/src/wanijo/instance/view.clj index 0433d81..c4a11ef 100644 --- a/src/wanijo/instance/view.clj +++ b/src/wanijo/instance/view.clj @@ -44,6 +44,9 @@ :request req :content [[:h1 + (if (:starred instance) + "★" "☆") + " " (h (-> instance :schema :name)) " " [:small (h (:name instance))]]