summaryrefslogtreecommitdiff
path: root/haskell/src/SpaceTraders/APIClient/Systems.hs
diff options
context:
space:
mode:
authorJulien Dessaux2023-07-20 00:24:31 +0200
committerJulien Dessaux2023-07-20 00:24:31 +0200
commit24f6c8eb90555b81a96b142fec8057b05d334035 (patch)
treed85d9f71cb9dc6472d6cb4e95a0d2ca256308ce8 /haskell/src/SpaceTraders/APIClient/Systems.hs
parent[haskell] Fixed models' serialization (diff)
downloadspacetraders-24f6c8eb90555b81a96b142fec8057b05d334035.tar.gz
spacetraders-24f6c8eb90555b81a96b142fec8057b05d334035.tar.bz2
spacetraders-24f6c8eb90555b81a96b142fec8057b05d334035.zip
[haskell] Finalized the agent initialization, refresh and reset
Diffstat (limited to '')
-rw-r--r--haskell/src/SpaceTraders/APIClient/Systems.hs10
1 files changed, 5 insertions, 5 deletions
diff --git a/haskell/src/SpaceTraders/APIClient/Systems.hs b/haskell/src/SpaceTraders/APIClient/Systems.hs
index 2e275ee..eb15b4d 100644
--- a/haskell/src/SpaceTraders/APIClient/Systems.hs
+++ b/haskell/src/SpaceTraders/APIClient/Systems.hs
@@ -3,7 +3,7 @@
{-# LANGUAGE OverloadedStrings #-}
module SpaceTraders.APIClient.Systems
- ( listSystems
+ ( initSystems
) where
import Control.Exception
@@ -15,8 +15,8 @@ import SpaceTraders.APIClient.Pagination
import SpaceTraders.Database.Systems
import SpaceTraders.Model.System(System)
-listSystems :: SpaceTradersT (APIResponse [System])
-listSystems = do
+initSystems :: SpaceTradersT (APIResponse [System])
+initSystems = do
s <- getSystems
listSystems' Pagination{limit=20, page=((length s) `div` 20) + 1, total=0}
where
@@ -25,8 +25,8 @@ listSystems = do
resp <- sendPaginated (Just p) $ setRequestPath "/v2/systems"
case resp of
Left e -> throw e
- Right (APIMessage [] _) -> Right <$> getSystems
Right (APIMessage r (Just p')) -> do
addSystems r
- listSystems' (nextPage p')
+ if (limit p' * page p' < total p') then listSystems' (nextPage p')
+ else Right <$> getSystems
_ -> undefined