packages feed

utxorpc-server-0.0.2.0: example/QueryImpl.hs

module QueryImpl (handlerImpls) where

import Control.Monad.IO.Class (MonadIO)
import EmptyHandlers (emptySStreamHandler, emptyUnaryHandler)
import Network.GRPC.Server (ServerStreamHandler, UnaryHandler)
import Proto.Utxorpc.V1alpha.Query.Query
import Utxorpc.Server (QueryHandlers (..))

handlerImpls ::
  (MonadIO m) =>
  (String -> m ()) ->
  QueryHandlers m Int
handlerImpls logF =
  QueryHandlers
    (readParamsHandler logF)
    (readUtxosHandler logF)
    (searchUtxosHandler logF)
    (streamUtxosHandler logF)

readParamsHandler ::
  (MonadIO m) =>
  (String -> m ()) ->
  UnaryHandler m ReadParamsRequest ReadParamsResponse
readParamsHandler = emptyUnaryHandler

readUtxosHandler ::
  (MonadIO m) =>
  (String -> m ()) ->
  UnaryHandler m ReadUtxosRequest ReadUtxosResponse
readUtxosHandler = emptyUnaryHandler

searchUtxosHandler ::
  (MonadIO m) =>
  (String -> m ()) ->
  UnaryHandler m SearchUtxosRequest SearchUtxosResponse
searchUtxosHandler = emptyUnaryHandler

streamUtxosHandler ::
  (MonadIO m) =>
  (String -> m ()) ->
  ServerStreamHandler m ReadUtxosRequest ReadUtxosResponse Int
streamUtxosHandler = emptySStreamHandler