From 20d4381c9c9f3f64feafc246d12dc546542e5e84 Mon Sep 17 00:00:00 2001 From: Julien Dessaux Date: Thu, 27 Jul 2023 23:29:28 +0200 Subject: [haskell] implemented ships's availability tracking in the database --- haskell/src/SpaceTraders/Utils.hs | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'haskell/src/SpaceTraders/Utils.hs') 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 -- cgit v1.2.3