Skip to content

Instantly share code, notes, and snippets.

@unhammer
Last active November 7, 2017 21:53
Show Gist options
  • Save unhammer/b5dc18018b6b9389908b6ae7ac160e4e to your computer and use it in GitHub Desktop.
Save unhammer/b5dc18018b6b9389908b6ae7ac160e4e to your computer and use it in GitHub Desktop.
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE OverloadedStrings #-}
{-# OPTIONS_GHC -fno-warn-orphans #-}
module OurUsers where
import Control.Monad.Logger (runNoLoggingT)
import qualified Data.Text as T
import GHC.Generics
import Data.Aeson
import Database.Persist.Sqlite (createSqlitePool, runSqlPool)
import Web.Users.Persistent
import Web.Users.Types
type OurUser = User MoreDetails
data MoreDetails
= MoreDetails
{ _dd_foo :: Bool
, _dd_bar :: Int
} deriving (Show, Eq, Generic)
instance FromJSON MoreDetails
instance ToJSON MoreDetails
mkUser :: T.Text -> T.Text -> PasswordPlain -> OurUser
mkUser name email pw =
User
{ u_name = name
, u_email = email
, u_password = makePassword pw
, u_active = True
, u_more = MoreDetails True 21
}
initBackend :: IO Persistent
initBackend = do
pool <- runNoLoggingT $ createSqlitePool "users.db" 5
let backend = Persistent (flip runSqlPool pool)
initUserBackend backend
return backend
addTuttle backend =
let u = mkUser "Archibald Buttle" "[email protected]" (PasswordPlain "hunter2")
in createUser backend u
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment