summaryrefslogtreecommitdiff
path: root/haskell/src/SpaceTraders/Utils.hs
diff options
context:
space:
mode:
authorJulien Dessaux2023-07-27 23:29:28 +0200
committerJulien Dessaux2023-07-27 23:29:28 +0200
commit20d4381c9c9f3f64feafc246d12dc546542e5e84 (patch)
treee149ffb4cbffebefd0c831b970342dea53339908 /haskell/src/SpaceTraders/Utils.hs
parent[haskell] embed sql migration scripts from external files (diff)
downloadspacetraders-20d4381c9c9f3f64feafc246d12dc546542e5e84.tar.gz
spacetraders-20d4381c9c9f3f64feafc246d12dc546542e5e84.tar.bz2
spacetraders-20d4381c9c9f3f64feafc246d12dc546542e5e84.zip
[haskell] implemented ships's availability tracking in the database
Diffstat (limited to '')
-rw-r--r--haskell/src/SpaceTraders/Utils.hs12
1 files changed, 6 insertions, 6 deletions
diff --git a/haskell/src/SpaceTraders/Utils.hs b/haskell/src/SpaceTraders/Utils.hs
index f78fda1..2f54a81 100644
--- a/haskell/src/SpaceTraders/Utils.hs
+++ b/haskell/src/SpaceTraders/Utils.hs
@@ -22,6 +22,12 @@ import qualified Database.SQLite.Simple as S
import SpaceTraders
+count :: (HasDatabaseConn env, MonadFail m, MonadReader env m, MonadIO m, S.ToRow t) => S.Query -> t -> m Int
+count q t = do
+ env <- ask
+ [[ret]] <- liftIO (S.query (getConn env) q t :: IO [[Int]])
+ return ret
+
decodeText :: FromJSON a => T.Text -> Maybe a
decodeText = decode . B.toLazyByteString . T.encodeUtf8Builder
@@ -39,12 +45,6 @@ int2ByteString = B.pack . map B.c2w . show
one_ :: (FromJSON b, HasDatabaseConn env, MonadReader env m, MonadIO m) => S.Query -> m b
one_ q = query_ q >>= pure . head
-count :: (HasDatabaseConn env, MonadFail m, MonadReader env m, MonadIO m, S.ToRow t) => S.Query -> t -> m Int
-count q t = do
- env <- ask
- [[ret]] <- liftIO (S.query (getConn env) q t :: IO [[Int]])
- return ret
-
query :: (FromJSON b, HasDatabaseConn env, MonadReader env m, MonadIO m, S.ToRow t) => S.Query -> t -> m [b]
query q t = do
env <- ask