diff options
author | Julien Dessaux | 2024-03-22 01:13:34 +0100 |
---|---|---|
committer | Julien Dessaux | 2024-03-27 15:21:37 +0100 |
commit | 7e27a0a7eada373780a9757fd89f70d4d911d69a (patch) | |
tree | 8b660bde99d5f9b4ae4f9e9caea4b51f19931dbe /haskell/src/SpaceTraders/Utils.hs | |
parent | [node] begin the great typescript rewrite (diff) | |
download | spacetraders-7e27a0a7eada373780a9757fd89f70d4d911d69a.tar.gz spacetraders-7e27a0a7eada373780a9757fd89f70d4d911d69a.tar.bz2 spacetraders-7e27a0a7eada373780a9757fd89f70d4d911d69a.zip |
[haskell] refactoring
Diffstat (limited to '')
-rw-r--r-- | haskell/src/SpaceTraders/Utils.hs | 26 |
1 files changed, 13 insertions, 13 deletions
diff --git a/haskell/src/SpaceTraders/Utils.hs b/haskell/src/SpaceTraders/Utils.hs index 2f54a81..d7eef46 100644 --- a/haskell/src/SpaceTraders/Utils.hs +++ b/haskell/src/SpaceTraders/Utils.hs @@ -9,18 +9,18 @@ module SpaceTraders.Utils , query_ ) where -import Control.Monad.Reader -import Data.Aeson -import Data.Aeson.Types -import qualified Data.ByteString as B -import qualified Data.ByteString.Builder as B +import Control.Monad.Reader +import Data.Aeson +import Data.Aeson.Types +import qualified Data.ByteString as B +import qualified Data.ByteString.Builder as B import qualified Data.ByteString.Internal as B -import Data.Maybe -import qualified Data.Text as T -import qualified Data.Text.Encoding as T -import qualified Database.SQLite.Simple as S +import Data.Maybe +import qualified Data.Text as T +import qualified Data.Text.Encoding as T +import qualified Database.SQLite.Simple as S -import SpaceTraders +import SpaceTraders count :: (HasDatabaseConn env, MonadFail m, MonadReader env m, MonadIO m, S.ToRow t) => S.Query -> t -> m Int count q t = do @@ -43,16 +43,16 @@ int2ByteString :: Int -> B.ByteString 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 +one_ q = head <$> query_ q query :: (FromJSON b, HasDatabaseConn env, MonadReader env m, MonadIO m, S.ToRow t) => S.Query -> t -> m [b] query q t = do env <- ask ret <- liftIO $ S.query (getConn env) q t - return . catMaybes $ map (decodeText . head) ret + return $ mapMaybe (decodeText . head) ret query_ :: (FromJSON b, HasDatabaseConn env, MonadReader env m, MonadIO m) => S.Query -> m [b] query_ q = do env <- ask ret <- liftIO $ S.query_ (getConn env) q - return . catMaybes $ map (decodeText . head) ret + return $ mapMaybe (decodeText . head) ret |