diff options
| author | Scott Ostler <sbsotler@gmail.com> | 2011-01-08 17:03:16 -0500 |
|---|---|---|
| committer | Scott Ostler <sbsotler@gmail.com> | 2011-01-08 17:03:16 -0500 |
| commit | bbac5e0ea48d2e443da6c9901ff09c11e8010f83 (patch) | |
| tree | 73da033aa253be9c9161f37b09bd06f7b11d31aa | |
| parent | 8d44926c18bd96f9dd5b6da59e3c1b1704438e03 (diff) | |
fetch-dumps-by-ids doesn't crash when given empty id list
| -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] |
