From a406a5baa8f8cae7f1dfbf4b96be62f87f1d5f75 Mon Sep 17 00:00:00 2001 From: Antti Holvikari Date: Sun, 3 May 2015 17:49:09 +0300 Subject: [PATCH] Fix `query` to lift ForeignErrors to Aff errors --- MODULE.md | 16 +++++++++++++++- src/Database/Postgres.purs | 4 ++-- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/MODULE.md b/MODULE.md index 1ef75ff..77be7d1 100644 --- a/MODULE.md +++ b/MODULE.md @@ -24,6 +24,13 @@ data DB :: ! ``` +#### `ConnectionString` + +``` purescript +type ConnectionString = String +``` + + #### `ConnectionInfo` ``` purescript @@ -31,6 +38,13 @@ type ConnectionInfo = { password :: String, user :: String, port :: Number, db : ``` +#### `mkConnectionString` + +``` purescript +mkConnectionString :: ConnectionInfo -> ConnectionString +``` + + #### `connect` ``` purescript @@ -58,7 +72,7 @@ Runs a query and returns nothing #### `query` ``` purescript -query :: forall eff a p. (IsForeign a) => Query a -> [SqlValue] -> Client -> Aff (db :: DB | eff) [F a] +query :: forall eff a p. (IsForeign a) => Query a -> [SqlValue] -> Client -> Aff (db :: DB | eff) [a] ``` Runs a query and returns all results. diff --git a/src/Database/Postgres.purs b/src/Database/Postgres.purs index 7b3497b..eecdec7 100644 --- a/src/Database/Postgres.purs +++ b/src/Database/Postgres.purs @@ -70,10 +70,10 @@ execute_ (Query sql) client = void $ runQuery_ sql client -- | Runs a query and returns all results. query :: forall eff a p . (IsForeign a) - => Query a -> [SqlValue] -> Client -> Aff (db :: DB | eff) [F a] + => Query a -> [SqlValue] -> Client -> Aff (db :: DB | eff) [a] query (Query sql) params client = do rows <- runQuery sql params client - pure $ read <$> rows + either liftError pure (sequence $ read <$> rows) -- | Just like `query` but does not make any param replacement query_ :: forall eff a. (IsForeign a) => Query a -> Client -> Aff (db :: DB | eff) [a]