From cc58377a48d13ef85cedb5ec0e19eb8b879dd497 Mon Sep 17 00:00:00 2001 From: Joris Date: Mon, 28 Mar 2016 18:04:25 +0200 Subject: Compute payment count client side --- src/server/Controller/Payment.hs | 8 -------- src/server/Main.hs | 2 -- src/server/Model/Json/Payer.hs | 22 --------------------- src/server/Model/Payer/Payment.hs | 40 --------------------------------------- src/server/Model/Payment.hs | 8 -------- 5 files changed, 80 deletions(-) delete mode 100644 src/server/Model/Json/Payer.hs delete mode 100644 src/server/Model/Payer/Payment.hs (limited to 'src/server') diff --git a/src/server/Controller/Payment.hs b/src/server/Controller/Payment.hs index ec241f7..a9d1acb 100644 --- a/src/server/Controller/Payment.hs +++ b/src/server/Controller/Payment.hs @@ -5,7 +5,6 @@ module Controller.Payment , getMonthlyPayments , createPayment , deletePayment - , getPaymentsCount ) where import Web.Scotty @@ -28,7 +27,6 @@ import Json (jsonObject) import Model.Database import qualified Model.Payment as P import Model.Frequency -import Model.Json.Number import Model.Message.Key (Key(PaymentNotDeleted)) getPayments :: ActionM () @@ -66,9 +64,3 @@ deletePayment paymentId = status badRequest400 text . TL.pack . show $ PaymentNotDeleted ) - -getPaymentsCount :: ActionM () -getPaymentsCount = - Secure.loggedAction (\_ -> do - Number <$> (liftIO . runDb $ P.getPaymentsCount) >>= json - ) diff --git a/src/server/Main.hs b/src/server/Main.hs index e4ad9f6..1cb324e 100644 --- a/src/server/Main.hs +++ b/src/server/Main.hs @@ -87,5 +87,3 @@ api conf = do post "/api/payment/delete" $ do paymentId <- param "id" :: ActionM Text deletePayment paymentId - - get "/api/payments/count" getPaymentsCount diff --git a/src/server/Model/Json/Payer.hs b/src/server/Model/Json/Payer.hs deleted file mode 100644 index 2101e40..0000000 --- a/src/server/Model/Json/Payer.hs +++ /dev/null @@ -1,22 +0,0 @@ -{-# LANGUAGE DeriveGeneric #-} - -module Model.Json.Payer - ( Payer(..) - ) where - -import GHC.Generics - -import Data.Aeson - -import Model.Database (UserId) -import Model.Json.Income - -data Payer = Payer - { userId :: UserId - , preIncomePaymentSum :: Int - , postIncomePaymentSum :: Int - , incomes :: [Income] - } deriving (Show, Generic) - -instance FromJSON Payer -instance ToJSON Payer diff --git a/src/server/Model/Payer/Payment.hs b/src/server/Model/Payer/Payment.hs deleted file mode 100644 index 6efc38d..0000000 --- a/src/server/Model/Payer/Payment.hs +++ /dev/null @@ -1,40 +0,0 @@ -module Model.Payer.Payment - ( getTotalPaymentsBefore - , getTotalPaymentsAfter - ) where - -import Data.Time.Clock (UTCTime) -import Data.Maybe (catMaybes) - -import Database.Persist -import Database.Esqueleto -import qualified Database.Esqueleto as E - -import Model.Database -import Model.Frequency - -getTotalPaymentsBefore :: UTCTime -> Persist [(UserId, Int)] -getTotalPaymentsBefore time = - getTotalPayments (\p -> p ^. PaymentCreation E.<. val time) - -getTotalPaymentsAfter :: UTCTime -> Persist [(UserId, Int)] -getTotalPaymentsAfter time = - getTotalPayments (\p -> p ^. PaymentCreation E.>=. val time) - -getTotalPayments :: (SqlExpr (Entity Payment) -> SqlExpr (Value Bool)) -> Persist [(UserId, Int)] -getTotalPayments paymentWhere = do - values <- select $ - from $ \payment -> do - where_ (isNothing (payment ^. PaymentDeletedAt)) - where_ (payment ^. PaymentFrequency E.==. val Punctual) - where_ (paymentWhere payment) - groupBy (payment ^. PaymentUserId) - return (payment ^. PaymentUserId, sum_ (payment ^. PaymentCost)) - return $ catMaybes . map (unMaybe . unValueTuple) $ values - -unValueTuple :: (Value a, Value b) -> (a, b) -unValueTuple (Value a, Value b) = (a, b) - -unMaybe :: (a, Maybe b) -> Maybe (a, b) -unMaybe (a, Just b) = Just (a, b) -unMaybe _ = Nothing diff --git a/src/server/Model/Payment.hs b/src/server/Model/Payment.hs index 9b32fea..5c7d940 100644 --- a/src/server/Model/Payment.hs +++ b/src/server/Model/Payment.hs @@ -6,7 +6,6 @@ module Model.Payment , getMonthlyPayments , createPayment , deleteOwnPayment - , getPaymentsCount ) where import Data.Text (Text) @@ -91,10 +90,3 @@ deleteOwnPayment user paymentId = do return False Nothing -> return False - -getPaymentsCount :: Persist Int -getPaymentsCount = - count - [ PaymentDeletedAt P.==. Nothing - , PaymentFrequency P.==. Punctual - ] -- cgit v1.2.3