aboutsummaryrefslogtreecommitdiff
path: root/common/src/Common/Model/User.hs
blob: 694c70ee040f1665a54591c47d28744dc0cb0491 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
{-# LANGUAGE DeriveGeneric #-}

module Common.Model.User
  ( UserId
  , User(..)
  , findUser
  ) 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

findUser :: UserId -> [User] -> Maybe User
findUser userId users = L.find ((== userId) . _user_id) users