diff options
author | Julien Dessaux | 2023-07-20 00:24:31 +0200 |
---|---|---|
committer | Julien Dessaux | 2023-07-20 00:24:31 +0200 |
commit | 24f6c8eb90555b81a96b142fec8057b05d334035 (patch) | |
tree | d85d9f71cb9dc6472d6cb4e95a0d2ca256308ce8 /haskell/src/SpaceTraders/APIClient/Ships.hs | |
parent | [haskell] Fixed models' serialization (diff) | |
download | spacetraders-24f6c8eb90555b81a96b142fec8057b05d334035.tar.gz spacetraders-24f6c8eb90555b81a96b142fec8057b05d334035.tar.bz2 spacetraders-24f6c8eb90555b81a96b142fec8057b05d334035.zip |
[haskell] Finalized the agent initialization, refresh and reset
Diffstat (limited to 'haskell/src/SpaceTraders/APIClient/Ships.hs')
-rw-r--r-- | haskell/src/SpaceTraders/APIClient/Ships.hs | 24 |
1 files changed, 9 insertions, 15 deletions
diff --git a/haskell/src/SpaceTraders/APIClient/Ships.hs b/haskell/src/SpaceTraders/APIClient/Ships.hs index 0efbb5d..e2cf15c 100644 --- a/haskell/src/SpaceTraders/APIClient/Ships.hs +++ b/haskell/src/SpaceTraders/APIClient/Ships.hs @@ -3,34 +3,28 @@ {-# LANGUAGE OverloadedStrings #-} module SpaceTraders.APIClient.Ships - ( listShips + ( myShips ) where -import Control.Exception ---import qualified Data.Text as T ---import qualified Database.SQLite.Simple as S import Network.HTTP.Simple import SpaceTraders import SpaceTraders.APIClient.Client import SpaceTraders.APIClient.Pagination ---import SpaceTraders.Database.Ships +import SpaceTraders.Database.Ships import SpaceTraders.Model.Ship(Ship) -import Debug.Trace -listShips :: SpaceTradersT (APIResponse [Ship]) -listShips = do +myShips :: SpaceTradersT (APIResponse [Ship]) +myShips = do listShips' Pagination{limit=20, page=1, total=0} where listShips' :: Pagination -> SpaceTradersT (APIResponse [Ship]) listShips' p = do - resp <- sendPaginated (Just p) $ setRequestPath "/v2/my/ships" + resp <- sendPaginated (Just p) $ setRequestPath "/v2/my/ships" :: SpaceTradersT (APIPaginatedResponse [Ship]) case resp of - Left e -> throw e + Left e -> return $ Left e Right (APIMessage r (Just p')) -> do - liftIO $ traceIO $ show p' - --if (length r == 0 || ((page p') * (limit p') - --addShips conn r - --listShips' (nextPage p') - return $ Right r + mapM_ setShip r + if (limit p' * page p' < total p') then listShips' (nextPage p') + else Right <$> getShips _ -> undefined |