diff options
Diffstat (limited to 'src/common/Model/User.hs')
-rw-r--r-- | src/common/Model/User.hs | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/src/common/Model/User.hs b/src/common/Model/User.hs new file mode 100644 index 0000000..8c64bc2 --- /dev/null +++ b/src/common/Model/User.hs @@ -0,0 +1,29 @@ +{-# LANGUAGE DeriveGeneric #-} + +module Common.Model.User + ( UserId + , User(..) + , find + ) where + +import Data.Aeson (FromJSON, ToJSON) +import qualified Data.List as L +import Data.Int (Int64) +import Data.Text (Text) +import Data.Time (UTCTime) +import GHC.Generics (Generic) + +type UserId = Int64 + +data User = User + { _user_id :: UserId + , _user_creation :: UTCTime + , _user_email :: Text + , _user_name :: Text + } deriving (Show, Generic) + +instance FromJSON User +instance ToJSON User + +find :: UserId -> [User] -> Maybe User +find userId users = L.find ((== userId) . _user_id) users |