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

     1  package global
     2  
     3  import (
     4  	// "strconv"
     5  
     6  	wire "github.com/cosmos/cosmos-sdk/codec"
     7  	sdk "github.com/cosmos/cosmos-sdk/types"
     8  	abci "github.com/tendermint/tendermint/abci/types"
     9  
    10  	// linotypes "github.com/lino-network/lino/types"
    11  	"github.com/lino-network/lino/utils"
    12  	"github.com/lino-network/lino/x/global/types"
    13  )
    14  
    15  // creates a querier for global REST endpoints
    16  func NewQuerier(gm GlobalKeeper) sdk.Querier {
    17  	cdc := wire.New()
    18  	wire.RegisterCrypto(cdc)
    19  	return func(ctx sdk.Context, path []string, req abci.RequestQuery) (res []byte, err sdk.Error) {
    20  		switch path[0] {
    21  		// case types.QueryTimeEventList:
    22  		// 	return queryTimeEventList(ctx, cdc, path[1:], req, gm)
    23  		case types.QueryGlobalTime:
    24  			return queryGlobalTime(ctx, cdc, path[1:], req, gm)
    25  		case types.QueryGlobalEventErrors:
    26  			return utils.NewQueryResolver(0, func(args ...string) (interface{}, sdk.Error) {
    27  				return gm.GetEventErrors(ctx), nil
    28  			})(ctx, cdc, path)
    29  		case types.QueryGlobalBCEventErrors:
    30  			return utils.NewQueryResolver(0, func(args ...string) (interface{}, sdk.Error) {
    31  				return gm.GetBCEventErrors(ctx), nil
    32  			})(ctx, cdc, path)
    33  		default:
    34  			return nil, sdk.ErrUnknownRequest("unknown global query endpoint")
    35  		}
    36  	}
    37  }
    38  
    39  // func queryTimeEventList(ctx sdk.Context, cdc *wire.Codec, path []string, req abci.RequestQuery, gm GlobalKeeper) ([]byte, sdk.Error) {
    40  // 	if err := linotypes.CheckPathContentAndMinLength(path, 1); err != nil {
    41  // 		return nil, err
    42  // 	}
    43  // 	unixTime, convertErr := strconv.ParseInt(path[0], 10, 64)
    44  // 	if convertErr != nil {
    45  // 		return nil, types.ErrQueryFailed()
    46  // 	}
    47  // 	eventList, err := gm.storage.GetTimeEventList(ctx, unixTime)
    48  // 	if err != nil {
    49  // 		return nil, err
    50  // 	}
    51  // 	res, marshalErr := cdc.MarshalJSON(eventList)
    52  // 	if marshalErr != nil {
    53  // 		return nil, ErrQueryFailed()
    54  // 	}
    55  // 	return res, nil
    56  // }
    57  
    58  func queryGlobalTime(ctx sdk.Context, cdc *wire.Codec, path []string, req abci.RequestQuery, gm GlobalKeeper) ([]byte, sdk.Error) {
    59  	globalTime := gm.GetGlobalTime(ctx)
    60  	res, marshalErr := cdc.MarshalJSON(globalTime)
    61  	if marshalErr != nil {
    62  		return nil, types.ErrQueryFailed()
    63  	}
    64  	return res, nil
    65  }