tinkoff-invest-sdk-0.1.0.0: src/Invest/Service/Sandbox.hs
module Invest.Service.Sandbox(
openSandboxAccount,
getSandboxAccounts,
closeSandboxAccount,
postSandboxOrder,
getSandboxOrders,
cancelSandboxOrder,
getSandboxOrderState,
getSandboxPositions,
getSandboxOperations,
getSandboxPortfolio,
sandboxPayIn
) where
import Control.Lens ((&), (.~), (^.))
import Data.ProtoLens.Message (defMessage)
import Data.Text
import Invest.Client.Helpers (GrpcClient, GrpcIO, runUnary,
runUnary_)
import Network.GRPC.Client (RawReply)
import Network.GRPC.HTTP2.ProtoLens (RPC (..))
import Proto.Google.Protobuf.Timestamp
import qualified Proto.Invest.Common_Fields as C
import Proto.Invest.Operations
import qualified Proto.Invest.Operations_Fields as OP
import Proto.Invest.Orders
import qualified Proto.Invest.Orders_Fields as O
import Proto.Invest.Sandbox
import qualified Proto.Invest.Sandbox_Fields as S
import Proto.Invest.Users
import qualified Proto.Invest.Users_Fields as U
import Proto.Invest.Common
openSandboxAccount :: GrpcClient -> GrpcIO Text
openSandboxAccount gc = runUnary_ (^. S.accountId) (RPC :: RPC SandboxService "openSandboxAccount") gc defMessage
getSandboxAccounts :: GrpcClient -> GrpcIO [Account]
getSandboxAccounts gc = runUnary_ (^. U.accounts) (RPC :: RPC SandboxService "getSandboxAccounts") gc defMessage
closeSandboxAccount :: GrpcClient -> CloseSandboxAccountRequest -> GrpcIO CloseSandboxAccountResponse
closeSandboxAccount = runUnary (RPC :: RPC SandboxService "closeSandboxAccount")
postSandboxOrder :: GrpcClient -> PostOrderRequest -> GrpcIO PostOrderResponse
postSandboxOrder = runUnary (RPC :: RPC SandboxService "postSandboxOrder")
getSandboxOrders :: GrpcClient -> Text -> GrpcIO [OrderState]
getSandboxOrders gc accountId = runUnary_ (^. O.orders) (RPC :: RPC SandboxService "getSandboxOrders") gc message
where message = defMessage & O.accountId .~ accountId
cancelSandboxOrder :: GrpcClient -> CancelOrderRequest -> GrpcIO Timestamp
cancelSandboxOrder = runUnary_ (^. C.time) (RPC :: RPC SandboxService "cancelSandboxOrder")
getSandboxOrderState :: GrpcClient -> GetOrderStateRequest -> GrpcIO OrderState
getSandboxOrderState = runUnary (RPC :: RPC SandboxService "getSandboxOrderState")
getSandboxPositions :: GrpcClient -> PositionsRequest -> GrpcIO PositionsResponse
getSandboxPositions = runUnary (RPC :: RPC SandboxService "getSandboxPositions")
getSandboxOperations :: GrpcClient -> OperationsRequest -> GrpcIO [Operation]
getSandboxOperations = runUnary_ (^. OP.operations) (RPC :: RPC SandboxService "getSandboxOperations")
getSandboxPortfolio :: GrpcClient -> PortfolioRequest -> GrpcIO PortfolioResponse
getSandboxPortfolio = runUnary (RPC :: RPC SandboxService "getSandboxPortfolio")
sandboxPayIn :: GrpcClient -> SandboxPayInRequest -> GrpcIO MoneyValue
sandboxPayIn = runUnary_ (^. S.balance) (RPC :: RPC SandboxService "sandboxPayIn")