github.com/lino-network/lino@v0.6.11/x/post/querier.go (about)

     1  package post
     2  
     3  import (
     4  	wire "github.com/cosmos/cosmos-sdk/codec"
     5  	sdk "github.com/cosmos/cosmos-sdk/types"
     6  	abci "github.com/tendermint/tendermint/abci/types"
     7  
     8  	linotypes "github.com/lino-network/lino/types"
     9  	"github.com/lino-network/lino/utils"
    10  	"github.com/lino-network/lino/x/post/types"
    11  )
    12  
    13  // creates a querier for post REST endpoints
    14  func NewQuerier(pm PostKeeper) sdk.Querier {
    15  	cdc := wire.New()
    16  	wire.RegisterCrypto(cdc)
    17  	return func(ctx sdk.Context, path []string, req abci.RequestQuery) (res []byte, err sdk.Error) {
    18  		switch path[0] {
    19  		case types.QueryPostInfo:
    20  			return utils.NewQueryResolver(1, func(args ...string) (interface{}, sdk.Error) {
    21  				return pm.GetPost(ctx, linotypes.Permlink(args[0]))
    22  			})(ctx, cdc, path)
    23  		case types.QueryConsumptionWindow:
    24  			return utils.NewQueryResolver(0, func(args ...string) (interface{}, sdk.Error) {
    25  				return pm.GetComsumptionWindow(ctx), nil
    26  			})(ctx, cdc, path)
    27  		default:
    28  			return nil, sdk.ErrUnknownRequest("unknown post query endpoint")
    29  		}
    30  	}
    31  }