|
|
@@ -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]
|