fix: api.q

This commit is contained in:
Tienson Qin
2021-02-18 13:06:03 +08:00
parent 2ad2cd00f4
commit 07bfc2edff
2 changed files with 30 additions and 27 deletions

View File

@@ -10,7 +10,7 @@
(when-let [repo (state/get-current-repo)]
(when-let [conn (db/get-conn repo)]
(when-let [result (query-dsl/query repo query-string)]
@result))))
(clj->js @result)))))
(defn ^:export datascript_query
[query & inputs]

View File

@@ -45,32 +45,35 @@
(defn custom-query-result-transform
[query-result remove-blocks q]
(let [repo (state/get-current-repo)
result (db-utils/seq-flatten query-result)
block? (:block/uuid (first result))]
(let [result (if block?
(let [result (if (seq remove-blocks)
(let [remove-blocks (set remove-blocks)]
(remove (fn [h]
(contains? remove-blocks (:block/uuid h)))
result))
result)]
(some->> result
(db-utils/with-repo repo)
(model/with-block-refs-count repo)
(model/sort-blocks)))
result)]
(if-let [result-transform (:result-transform q)]
(if-let [f (sci/eval-string (pr-str result-transform))]
(try
(sci/call-fn f result)
(catch js/Error e
(log/error :sci/call-error e)
result))
result)
(if block?
(db-utils/group-by-page result)
result)))))
(try
(let [repo (state/get-current-repo)
result (db-utils/seq-flatten query-result)
block? (:block/uuid (first result))]
(let [result (if block?
(let [result (if (seq remove-blocks)
(let [remove-blocks (set remove-blocks)]
(remove (fn [h]
(contains? remove-blocks (:block/uuid h)))
result))
result)]
(some->> result
(db-utils/with-repo repo)
(model/with-block-refs-count repo)
(model/sort-blocks)))
result)]
(if-let [result-transform (:result-transform q)]
(if-let [f (sci/eval-string (pr-str result-transform))]
(try
(sci/call-fn f result)
(catch js/Error e
(log/error :sci/call-error e)
result))
result)
(if block?
(db-utils/group-by-page result)
result))))
(catch js/Error e
(log/error :query/failed e))))
(defn- resolve-query
[query]