-
Notifications
You must be signed in to change notification settings - Fork 206
/
grpc_query_list.go
55 lines (45 loc) · 1.56 KB
/
grpc_query_list.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
package keeper
import (
"context"
"fmt"
sdk "github.com/cosmos/cosmos-sdk/types"
"github.com/lavanet/lava/utils"
"github.com/lavanet/lava/x/subscription/types"
"google.golang.org/grpc/codes"
"google.golang.org/grpc/status"
)
func (k Keeper) List(goCtx context.Context, req *types.QueryListRequest) (*types.QueryListResponse, error) {
if req == nil {
return nil, status.Error(codes.InvalidArgument, "invalid request")
}
var allSubsInfo []types.ListInfoStruct
ctx := sdk.UnwrapSDKContext(goCtx)
subsIndices := k.GetAllSubscriptionsIndices(ctx)
for _, consumer := range subsIndices {
var sub types.Subscription
if found := k.subsFS.FindEntry(ctx, consumer, uint64(ctx.BlockHeight()), &sub); !found {
return nil, utils.LavaFormatError("failed to get subscription",
fmt.Errorf("subscription not found"),
utils.Attribute{Key: "consumer", Value: consumer},
utils.Attribute{Key: "block", Value: ctx.BlockHeight()},
)
}
subInfoStruct := types.ListInfoStruct{
Consumer: sub.Consumer,
Plan: sub.PlanIndex,
DurationTotal: sub.DurationTotal,
DurationLeft: sub.DurationLeft,
MonthExpiry: sub.MonthExpiryTime,
MonthCuTotal: sub.MonthCuTotal,
MonthCuLeft: sub.MonthCuLeft,
DurationBought: sub.DurationBought,
Cluster: sub.Cluster,
AutoRenewal: sub.AutoRenewal,
}
allSubsInfo = append(allSubsInfo, subInfoStruct)
}
return &types.QueryListResponse{SubsInfo: allSubsInfo}, nil
}
func (k Keeper) GetAllSubscriptionsIndices(ctx sdk.Context) []string {
return k.subsFS.GetAllEntryIndices(ctx)
}