diff options
Diffstat (limited to 'haskell/src/SpaceTraders/APIClient/Agent.hs')
-rw-r--r-- | haskell/src/SpaceTraders/APIClient/Agent.hs | 17 |
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} |