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 }