summaryrefslogtreecommitdiff
path: root/haskell/src/SpaceTraders/APIClient/Agent.hs
diff options
context:
space:
mode:
Diffstat (limited to 'haskell/src/SpaceTraders/APIClient/Agent.hs')
-rw-r--r--haskell/src/SpaceTraders/APIClient/Agent.hs17
1 files changed, 7 insertions, 10 deletions
diff --git a/haskell/src/SpaceTraders/APIClient/Agent.hs b/haskell/src/SpaceTraders/APIClient/Agent.hs
index 023a4f4..7b367f6 100644
--- a/haskell/src/SpaceTraders/APIClient/Agent.hs
+++ b/haskell/src/SpaceTraders/APIClient/Agent.hs
@@ -8,22 +8,20 @@ module SpaceTraders.APIClient.Agent
, register
) where
+import Control.Monad.Reader
import Data.Aeson
import GHC.Generics
import qualified Data.Text as T
import Network.HTTP.Simple
-import qualified SpaceTraders as ST
+import SpaceTraders
import SpaceTraders.APIClient.Client
import SpaceTraders.Model.Agent(Agent)
import SpaceTraders.Model.Ship(Ship)
import SpaceTraders.Model.Contract
-myAgent :: ST.SpaceTradersT (APIResponse Agent)
-myAgent = do
- c <- ST.ask
- ST.liftIO $ send $ setRequestPath "/v2/my/agent"
- $ tokenReq (ST.token c)
+myAgent :: SpaceTradersT (APIResponse Agent)
+myAgent = send $ setRequestPath "/v2/my/agent"
data RegisterRequest = RegisterRequest { faction :: T.Text
, symbol :: T.Text
@@ -34,8 +32,7 @@ data RegisterMessage = RegisterMessage { agent :: Agent
, token :: T.Text
} deriving (FromJSON, Generic, Show)
-register :: T.Text -> T.Text -> IO (APIResponse RegisterMessage)
+register :: (HasRequest env, MonadIO m, MonadReader env m) => T.Text -> T.Text -> m (APIResponse RegisterMessage)
register s f = send $ setRequestPath "/v2/register"
- $ setRequestMethod "POST"
- $ setRequestBodyJSON RegisterRequest{symbol = s, faction = f}
- $ defaultReq
+ . setRequestMethod "POST"
+ . setRequestBodyJSON RegisterRequest{symbol = s, faction = f}