packages feed

tinkoff-invest-sdk-0.1.0.0: src/Invest/Service/Operations.hs

module Invest.Service.Operations(
    getOperations,
    getPortfolio,
    getPositions,
    getWithdrawLimits,
    getBrokerReport,
    getDividendsForeignIssuer
) where

import           Control.Lens                   ((^.))
import           Data.ProtoLens.Message         (defMessage)
import           Invest.Client.Helpers          (GrpcClient, GrpcIO, runUnary,
                                                 runUnary_)
import           Network.GRPC.HTTP2.ProtoLens   (RPC (..))
import           Proto.Invest.Operations
import qualified Proto.Invest.Operations_Fields as O

getOperations :: GrpcClient -> OperationsRequest -> GrpcIO [Operation]
getOperations = runUnary_ (^. O.operations) (RPC :: RPC OperationsService "getOperations")

getPortfolio :: GrpcClient -> PortfolioRequest -> GrpcIO PortfolioResponse
getPortfolio = runUnary (RPC :: RPC OperationsService "getPortfolio")

getPositions :: GrpcClient -> PositionsRequest -> GrpcIO PositionsResponse
getPositions = runUnary (RPC :: RPC OperationsService "getPositions")

getWithdrawLimits :: GrpcClient -> WithdrawLimitsRequest -> GrpcIO WithdrawLimitsResponse
getWithdrawLimits = runUnary (RPC :: RPC OperationsService "getWithdrawLimits")

getBrokerReport :: GrpcClient -> BrokerReportRequest -> GrpcIO BrokerReportResponse
getBrokerReport = runUnary (RPC :: RPC OperationsService "getBrokerReport")

getDividendsForeignIssuer :: GrpcClient -> GetDividendsForeignIssuerRequest -> GrpcIO GetDividendsForeignIssuerResponse
getDividendsForeignIssuer = runUnary (RPC :: RPC OperationsService "getDividendsForeignIssuer")

getOperationsByCursor :: GrpcClient -> GetOperationsByCursorRequest -> GrpcIO GetOperationsByCursorResponse
getOperationsByCursor = runUnary (RPC :: RPC OperationsService "getOperationsByCursor")