update user timestamp on purchase
This commit is contained in:
parent
2f3ef14a97
commit
f07bfb7380
3 changed files with 34 additions and 0 deletions
|
@ -6,6 +6,7 @@ import Control.Monad.Reader (asks)
|
|||
|
||||
-- internal imports
|
||||
|
||||
import Control.User
|
||||
import Types
|
||||
import Model
|
||||
|
||||
|
@ -40,6 +41,7 @@ buy auth pds = do
|
|||
Just (auid, _) -> do
|
||||
void $ addToUserBalance auid (-price) conn
|
||||
newBalance <- userBalanceSelect conn auid
|
||||
userUpdateTimestamp auth
|
||||
return $ PurchaseResult
|
||||
( if newBalance < 0
|
||||
then PurchaseDebtful
|
||||
|
|
|
@ -60,6 +60,18 @@ userUpdate (Just (aid, method)) uds =
|
|||
{ errBody = "Wrong Authentication present."
|
||||
}
|
||||
|
||||
userUpdateTimestamp
|
||||
:: Maybe (Int, AuthMethod)
|
||||
-> MateHandler ()
|
||||
userUpdateTimestamp (Just (aid, _)) = do
|
||||
now <- liftIO getCurrentTime
|
||||
conn <- asks rsConnection
|
||||
void $ updateUserTimestamp aid (utctDay now) conn
|
||||
userUpdateTimestamp Nothing =
|
||||
throwError $ err401
|
||||
{ errBody = "No Authentication present."
|
||||
}
|
||||
|
||||
userList
|
||||
:: Maybe UserRefine
|
||||
-> MateHandler [UserSummary]
|
||||
|
|
|
@ -184,6 +184,26 @@ updateUserDetails uid uds now conn = liftIO $ runUpdate_ conn $ Update
|
|||
, uReturning = rCount
|
||||
}
|
||||
|
||||
updateUserTimestamp
|
||||
:: Int
|
||||
-> Day
|
||||
-> PGS.Connection
|
||||
-> MateHandler Int64
|
||||
updateUserTimestamp uid now conn = liftIO $ runUpdate_ conn $ Update
|
||||
{ uTable = userTable
|
||||
, uUpdateWith = updateEasy (\(id_, ident, balance, _, email, ava) ->
|
||||
( id_
|
||||
, ident
|
||||
, balance
|
||||
, C.constant now
|
||||
, email
|
||||
, ava
|
||||
)
|
||||
)
|
||||
, uWhere = \(i1, _, _, _, _, _) -> i1 .== C.constant uid
|
||||
, uReturning = rCount
|
||||
}
|
||||
|
||||
addToUserBalance
|
||||
:: Int
|
||||
-> Int
|
||||
|
|
Loading…
Reference in a new issue