From 24f6c8eb90555b81a96b142fec8057b05d334035 Mon Sep 17 00:00:00 2001 From: Julien Dessaux Date: Thu, 20 Jul 2023 00:24:31 +0200 Subject: [haskell] Finalized the agent initialization, refresh and reset --- haskell/src/SpaceTraders/APIClient/Ships.hs | 24 +++++++++--------------- 1 file changed, 9 insertions(+), 15 deletions(-) (limited to 'haskell/src/SpaceTraders/APIClient/Ships.hs') 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 -- cgit v1.2.3