1
0
Fork 0

[haskell] Add a SpaceTradersT and handle server reset api message

This commit is contained in:
Julien Dessaux 2023-07-16 23:31:00 +02:00
parent 7bd1c116c2
commit e084d260ff
Signed by: adyxax
GPG key ID: F92E51B86E07177E
6 changed files with 110 additions and 31 deletions

View file

@ -3,36 +3,19 @@
module Main (main) where
import Control.Exception
import qualified Database.SQLite.Simple as S
import qualified Data.Text as T
import SpaceTraders.APIClient.Agent
import SpaceTraders
import SpaceTraders.Automation.Init
import SpaceTraders.APIClient.Agent(myAgent)
import SpaceTraders.APIClient.Systems
import SpaceTraders.Database
import SpaceTraders.Database.Agents
import SpaceTraders.Database.Contracts
import SpaceTraders.Database.Ships
import SpaceTraders.Database.Tokens
main :: IO ()
main = do
conn <- open
t <- getToken conn `catch` registerNow conn
ma <- myAgent t
config <- initST
ma <- runSpaceTradersT myAgent config
print ma
s <- listSystems t conn
print s
close conn
where
registerNow :: S.Connection -> SomeException -> IO (T.Text)
registerNow conn _ = do
r <- register "ADYXAX" "COSMIC"
case r of
Right r' -> do
setAgent conn $ agent r'
addContract conn $ contract r'
addShip conn $ ship r'
let t = token r'
setToken conn $ t
return t
Left e' -> throwIO e'
s <- listSystems (token config) (conn config)
case s of
Left e -> throwIO e
Right s' -> print $ length s'
deinitST config