45 lines
1.2 KiB
Go
45 lines
1.2 KiB
Go
package keeper
|
|
|
|
import (
|
|
"context"
|
|
"fmt"
|
|
|
|
"colinear/x/colinearcore/memdb"
|
|
"colinear/x/colinearcore/types"
|
|
|
|
sdk "github.com/cosmos/cosmos-sdk/types"
|
|
"google.golang.org/grpc/codes"
|
|
"google.golang.org/grpc/status"
|
|
)
|
|
|
|
func (k Keeper) AuctionInfo(goCtx context.Context, req *types.QueryAuctionInfoRequest) (*types.QueryAuctionInfoResponse, error) {
|
|
if req == nil {
|
|
return nil, status.Error(codes.InvalidArgument, "invalid request")
|
|
}
|
|
|
|
ctx := sdk.UnwrapSDKContext(goCtx)
|
|
|
|
if exp, err := k.AuctionIsExpired(ctx, req.AuctionId); err != nil {
|
|
return nil, fmt.Errorf("unable to check auction expiry status: %s", err)
|
|
} else {
|
|
if exp {
|
|
return nil, fmt.Errorf("auction %s is finalized", req.AuctionId)
|
|
}
|
|
}
|
|
|
|
bids, err := memdb.AuctionDB.GetBids(req.AuctionId)
|
|
if err != nil {
|
|
return nil, fmt.Errorf("unable to get bids for auction %s: %s", req.AuctionId, err)
|
|
}
|
|
|
|
vProviders, err := memdb.AuctionDB.GetVerifiedProviders(req.AuctionId)
|
|
if err != nil {
|
|
return nil, fmt.Errorf("unable to get verified providers for auction %s: %s", req.AuctionId, err)
|
|
}
|
|
|
|
return &types.QueryAuctionInfoResponse{
|
|
Bids: bids,
|
|
VerifiedProviders: vProviders,
|
|
}, nil
|
|
}
|