1
0
Fork 0

[haskell] Trigger a program restart when the api client encounters a server reset

This commit is contained in:
Julien Dessaux 2023-07-17 00:53:02 +02:00
parent e084d260ff
commit 9f75243ada
Signed by: adyxax
GPG key ID: F92E51B86E07177E
2 changed files with 8 additions and 0 deletions

View file

@ -27,6 +27,7 @@ dependencies:
- text - text
- time - time
- transformers - transformers
- unix
ghc-options: ghc-options:
- -Wall - -Wall

View file

@ -23,6 +23,8 @@ import qualified Data.Text as T
import qualified Data.Text.Encoding as T import qualified Data.Text.Encoding as T
import Network.HTTP.Simple import Network.HTTP.Simple
import Network.HTTP.Types.Status import Network.HTTP.Types.Status
import System.Environment
import System.Posix.Process
import SpaceTraders.APIClient.Errors import SpaceTraders.APIClient.Errors
import SpaceTraders.APIClient.Pagination import SpaceTraders.APIClient.Pagination
@ -81,4 +83,9 @@ sendPaginated request = do
Right (APIRateLimit r) -> do Right (APIRateLimit r) -> do
threadDelay (1_000_000 * (round $ retryAfter r)) threadDelay (1_000_000 * (round $ retryAfter r))
sendPaginated request sendPaginated request
Right (APIResetHappened _) -> do
p <- getExecutablePath
a <- getArgs
e <- getEnvironment
executeFile p False a (Just e)
Right e -> return $ Left e Right e -> return $ Left e