summaryrefslogtreecommitdiff
path: root/haskell/src/SpaceTraders/Database/Agents.hs
diff options
context:
space:
mode:
Diffstat (limited to 'haskell/src/SpaceTraders/Database/Agents.hs')
-rw-r--r--haskell/src/SpaceTraders/Database/Agents.hs14
1 files changed, 3 insertions, 11 deletions
diff --git a/haskell/src/SpaceTraders/Database/Agents.hs b/haskell/src/SpaceTraders/Database/Agents.hs
index 0557b1d..49ae11f 100644
--- a/haskell/src/SpaceTraders/Database/Agents.hs
+++ b/haskell/src/SpaceTraders/Database/Agents.hs
@@ -8,7 +8,6 @@ module SpaceTraders.Database.Agents
import Control.Monad.Reader
import Data.Aeson
-import Data.Maybe
import qualified Database.SQLite.Simple as S
import SpaceTraders
@@ -16,17 +15,10 @@ import SpaceTraders.Model.Agent
import SpaceTraders.Utils
addAgent :: (HasDatabaseConn env, MonadIO m, MonadReader env m) => Agent -> m ()
-addAgent agent = do
- env <- ask
- liftIO $ S.execute (getConn env) "INSERT INTO agents(data) VALUES (json(?));" (S.Only (encode agent))
+addAgent agent = execute "INSERT INTO agents(data) VALUES (json(?));" (S.Only (encode agent))
getAgent :: (HasDatabaseConn env, MonadIO m, MonadReader env m) => m Agent
-getAgent = do
- env <- ask
- ret <- liftIO $ S.query_ (getConn env) "SELECT data FROM agents;"
- return . head . catMaybes $ map (decodeText . head) ret
+getAgent = one_ "SELECT data FROM agents";
setAgent :: (HasDatabaseConn env, MonadIO m, MonadReader env m) => Agent -> m ()
-setAgent agent = do
- env <- ask
- liftIO $ S.execute (getConn env) "UPDATE agents SET data = json(?);" (S.Only (encode agent))
+setAgent agent = execute "UPDATE agents SET data = json(?);" (S.Only (encode agent))