From a775330b4fa17fb367e55343e6fda6c7ae9e34b4 Mon Sep 17 00:00:00 2001 From: Julien Dessaux Date: Sun, 2 Jul 2023 22:58:30 +0200 Subject: Bootstrapped my haskell client --- haskell/src/SpaceTraders/APIClient/Agent.hs | 34 +++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 haskell/src/SpaceTraders/APIClient/Agent.hs (limited to 'haskell/src/SpaceTraders/APIClient/Agent.hs') diff --git a/haskell/src/SpaceTraders/APIClient/Agent.hs b/haskell/src/SpaceTraders/APIClient/Agent.hs new file mode 100644 index 0000000..997d1e5 --- /dev/null +++ b/haskell/src/SpaceTraders/APIClient/Agent.hs @@ -0,0 +1,34 @@ +{-# LANGUAGE DeriveAnyClass #-} +{-# LANGUAGE DeriveGeneric #-} +{-# LANGUAGE OverloadedStrings #-} + +module SpaceTraders.APIClient.Agent + ( RegisterMessage(..) + , myAgent + , register + ) where + +import Data.Aeson +import GHC.Generics +import qualified Data.Text as T +import Network.HTTP.Simple + +import SpaceTraders.APIClient.Client +import SpaceTraders.Model.Agent + +myAgent :: T.Text -> IO (Either APIError Agent) +myAgent t = send $ setRequestPath "/v2/my/agent" + $ tokenReq t + +data RegisterRequest = RegisterRequest { symbol :: T.Text + , faction :: T.Text + } deriving (ToJSON, Generic, Show) +data RegisterMessage = RegisterMessage { token :: T.Text + , agent :: Agent + } deriving (FromJSON, Generic, Show) + +register :: T.Text -> T.Text -> IO (Either APIError RegisterMessage) +register s f = send $ setRequestPath "/v2/register" + $ setRequestMethod "POST" + $ setRequestBodyJSON RegisterRequest{symbol = s, faction = f} + $ defaultReq -- cgit v1.2.3