diff options
| -rw-r--r-- | src/tags.clj | 31 |
1 files changed, 16 insertions, 15 deletions
diff --git a/src/tags.clj b/src/tags.clj index 53236c5..fb530ea 100644 --- a/src/tags.clj +++ b/src/tags.clj @@ -332,21 +332,22 @@ WHERE EXISTS (defn fetch-dumps-by-ids ([ids] (fetch-dumps-by-ids ids nil)) ([ids viewer-nick] - (let [ids (map maybe-parse-int ids) - query (fetch-dumps-by-message-id-query :num-messages (count ids)) - raw-rows (do-select (vec (concat [query] ids))) - tagged-rows (map parse-tags-from-row-as-tag-map raw-rows) - index-func (fn [row] - (index-of #(= (:message_id row) %) ids))] - (for [m (sort-by index-func tagged-rows)] - (let [favers (get (:tags m) "favorite") - favorited (and viewer-nick - (boolean (some #(= % viewer-nick) favers))) - filtered-favers (filter #(not= % (:nick m)) favers)] - (assoc m - :favers filtered-favers - :favorited favorited - :count (count filtered-favers))))))) + (if-not (empty? ids) + (let [ids (map maybe-parse-int ids) + query (fetch-dumps-by-message-id-query :num-messages (count ids)) + raw-rows (do-select (vec (concat [query] ids))) + tagged-rows (map parse-tags-from-row-as-tag-map raw-rows) + index-func (fn [row] + (index-of #(= (:message_id row) %) ids))] + (for [m (sort-by index-func tagged-rows)] + (let [favers (get (:tags m) "favorite") + favorited (and viewer-nick + (boolean (some #(= % viewer-nick) favers))) + filtered-favers (filter #(not= % (:nick m)) favers)] + (assoc m + :favers filtered-favers + :favorited favorited + :count (count filtered-favers)))))))) (defn fetch-dump-by-id ([m-id] |
