Further generalize the Database effect so that it can be used with data besides User
This commit is contained in:
@@ -17,13 +17,13 @@ rootHandler :: (Error ServerError :> es) => Eff es T.Text
|
||||
rootHandler = return "Hello, World!"
|
||||
|
||||
userListHandler :: (Database :> es, Error ServerError :> es, FileSystem :> es) => Eff es [User]
|
||||
userListHandler = mapM userGetHandler [1, 2, 3]
|
||||
userListHandler = databaseRead_ "SELECT id, name FROM users"
|
||||
|
||||
userGetHandler :: (Database :> es, Error ServerError :> es, FileSystem :> es) => Int -> Eff es User
|
||||
userGetHandler userId = databaseRead (queryUser userId) >>= \mUser ->
|
||||
case mUser of
|
||||
Just a -> pure a
|
||||
Nothing -> pure (User 0 "No user found")
|
||||
(a:_) -> pure a
|
||||
[] -> pure (User 0 "No user found")
|
||||
|
||||
userPostHandler :: (Database :> es, Error ServerError :> es, FileSystem :> es) => String -> Eff es NoContent
|
||||
userPostHandler name = databaseWrite (writeUser name) >>= \_ -> return NoContent
|
||||
|
||||
Reference in New Issue
Block a user