aboutsummaryrefslogtreecommitdiff
path: root/src/server/Model/Income.hs
diff options
context:
space:
mode:
authorJoris2017-09-24 22:14:48 +0200
committerJoris2017-11-07 09:33:01 +0100
commit898e7ed11ab0958fcdaf65b99b33f7b04787630a (patch)
tree8b5ab951c36d7d27550a7c4eaad16bbd2cd0edb1 /src/server/Model/Income.hs
parent14bdbc8c937f5d0b35c61350dba28cb41c3737cd (diff)
downloadbudget-898e7ed11ab0958fcdaf65b99b33f7b04787630a.tar.gz
budget-898e7ed11ab0958fcdaf65b99b33f7b04787630a.tar.bz2
budget-898e7ed11ab0958fcdaf65b99b33f7b04787630a.zip
Bootstrap with GHCJS and reflex:
- setup login and logout, - first draft of payment view.
Diffstat (limited to 'src/server/Model/Income.hs')
-rw-r--r--src/server/Model/Income.hs32
1 files changed, 9 insertions, 23 deletions
diff --git a/src/server/Model/Income.hs b/src/server/Model/Income.hs
index c6cdb55..bbe7657 100644
--- a/src/server/Model/Income.hs
+++ b/src/server/Model/Income.hs
@@ -1,16 +1,14 @@
{-# LANGUAGE OverloadedStrings #-}
+{-# OPTIONS_GHC -fno-warn-orphans #-}
module Model.Income
- ( IncomeId
- , Income(..)
- , list
+ ( list
, create
, editOwn
, deleteOwn
, modifiedDuring
) where
-import Data.Int (Int64)
import Data.Maybe (listToMaybe)
import Data.Time.Calendar (Day)
import Data.Time.Clock (UTCTime, getCurrentTime)
@@ -18,27 +16,15 @@ import Database.SQLite.Simple (Only(Only), FromRow(fromRow))
import Prelude hiding (id)
import qualified Database.SQLite.Simple as SQLite
+import Common.Model (Income(..), IncomeId, User(..), UserId)
+
import Model.Query (Query(Query))
-import Model.User (User, UserId)
-import qualified Model.User as User
import Resource (Resource, resourceCreatedAt, resourceEditedAt, resourceDeletedAt)
-type IncomeId = Int64
-
-data Income = Income
- { id :: IncomeId
- , userId :: UserId
- , date :: Day
- , amount :: Int
- , createdAt :: UTCTime
- , editedAt :: Maybe UTCTime
- , deletedAt :: Maybe UTCTime
- } deriving Show
-
instance Resource Income where
- resourceCreatedAt = createdAt
- resourceEditedAt = editedAt
- resourceDeletedAt = deletedAt
+ resourceCreatedAt = _income_createdAt
+ resourceEditedAt = _income_editedAt
+ resourceDeletedAt = _income_deletedAt
instance FromRow Income where
fromRow = Income <$>
@@ -70,7 +56,7 @@ editOwn incomeUserId incomeId incomeDate incomeAmount =
mbIncome <- listToMaybe <$> SQLite.query conn "SELECT * FROM income WHERE id = ?" (Only incomeId)
case mbIncome of
Just income ->
- if userId income == incomeUserId
+ if _income_userId income == incomeUserId
then do
now <- getCurrentTime
SQLite.execute
@@ -90,7 +76,7 @@ deleteOwn user incomeId =
mbIncome <- listToMaybe <$> SQLite.query conn "SELECT * FROM income WHERE id = ?" (Only incomeId)
case mbIncome of
Just income ->
- if userId income == User.id user
+ if _income_userId income == _user_id user
then do
now <- getCurrentTime
SQLite.execute conn "UPDATE income SET deleted_at = ? WHERE id = ?" (now, incomeId)