From 65a5443e2d3f523dc3a61e6cdf2a9a588e6ac368 Mon Sep 17 00:00:00 2001 From: Vincent Ambo Date: Sat, 3 Mar 2012 03:47:11 +0100 Subject: * getMonthCount now takes a BlogLang, as is obviously required --- src/Main.hs | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/Main.hs b/src/Main.hs index fb1cf07a5d39..3c4537597611 100644 --- a/src/Main.hs +++ b/src/Main.hs @@ -105,9 +105,9 @@ stripResult :: Result a -> a stripResult (Ok z) = z stripResult (Error s) = error $ "JSON error: " ++ s -getMonthCount :: Int -> Int -> ServerPart Int -getMonthCount y m = do - count <- queryDB "countDE" $ makeQuery startkey endkey +getMonthCount :: BlogLang -> Int -> Int -> ServerPart Int +getMonthCount lang y m = do + count <- queryDB (view lang) $ makeQuery startkey endkey return . stripCount $ map (stripResult . fromJSON . snd) count where startkey = JSArray [toJSON ("count" :: String), toJSON y, toJSON m] @@ -115,13 +115,15 @@ getMonthCount y m = do stripCount :: [Int] -> Int stripCount [x] = x stripCount [] = 0 + view DE = "countDE" + view EN = "countEN" -- CouchDB View Setup latestDEView = "function(doc){ if(doc.lang == 'DE'){ emit([doc.year, doc.month, doc.day, doc._id], doc); } }" latestENView = "function(doc){ if(doc.lang == 'EN'){ emit([doc.year, doc.month, doc.day, doc._id], doc); } }" -countDEView = "function(doc){ if(doc.lang == 'DE'){ emit([doc.year, doc.month, doc.day, doc._id], 1); } }" -countENView = "function(doc){ if(doc.lang == 'EN'){ emit([doc.year, doc.month, doc.day, doc._id], 1); } }" +countDEView = "function(doc){ if(doc.lang == 'DE'){ emit(['count', doc.year, doc.month, doc.day, doc._id], 1); } }" +countENView = "function(doc){ if(doc.lang == 'EN'){ emit(['count', doc.year, doc.month, doc.day, doc._id], 1); } }" countReduce = "function(keys, values, rereduce) { return sum(values); }" latestDE = ViewMap "latestDE" latestDEView -- cgit 1.4.1