Skip to content

Commit

Permalink
solve PageRequest compatibility issues
Browse files Browse the repository at this point in the history
  • Loading branch information
robert-zaremba committed Apr 21, 2024
1 parent ec4a4bb commit 0b34951
Show file tree
Hide file tree
Showing 9 changed files with 39 additions and 84 deletions.
1 change: 1 addition & 0 deletions types/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ go 1.21

require (
cosmossdk.io/api v0.3.1
github.com/cosmos/cosmos-sdk/api v0.1.0
cosmossdk.io/errors v1.0.1
cosmossdk.io/math v1.3.0
github.com/cockroachdb/apd/v2 v2.0.2
Expand Down
29 changes: 26 additions & 3 deletions types/ormutil/compatability.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,19 +5,42 @@ import (
"google.golang.org/protobuf/proto"

queryv1beta1 "cosmossdk.io/api/cosmos/base/query/v1beta1"
queryapi "github.com/cosmos/cosmos-sdk/api/cosmos/base/query/v1beta1"
"github.com/cosmos/cosmos-sdk/orm/model/ormlist"
"github.com/cosmos/cosmos-sdk/types/query"
)

// PageReqToCosmosApiLegacy is a temporal adapter for ORM v-alpha-*
func PageReqToCosmosApiLegacy(from *query.PageRequest) *queryapi.PageRequest {
if from == nil {
return &queryapi.PageRequest{Limit: query.DefaultLimit}
}
return &queryapi.PageRequest{
Key: from.Key, Offset: from.Offset, Limit: from.Limit, CountTotal: from.CountTotal, Reverse: from.Reverse}
}

func PageReqToOrmPaginate(pg *query.PageRequest) ormlist.Option {
return ormlist.Paginate(PageReqToCosmosApiLegacy(pg))
}

func PageResToCosmosTypes(from *queryapi.PageResponse) *query.PageResponse {
if from == nil {
return nil
}
return &query.PageResponse{NextKey: from.NextKey, Total: from.Total}
}

// TODO: probably we can remove
func GogoPageReqToPulsarPageReq(from *query.PageRequest) (*queryv1beta1.PageRequest, error) {
if from == nil {
return &queryv1beta1.PageRequest{Limit: query.DefaultLimit}, nil
}

to := &queryv1beta1.PageRequest{}
err := GogoToPulsarSlow(from, to)
return to, err
return &queryv1beta1.PageRequest{
Key: from.Key, Offset: from.Offset, Limit: from.Limit, CountTotal: from.CountTotal, Reverse: from.Reverse}, nil
}

// TODO: probably we can remove
func PulsarPageResToGogoPageRes(from *queryv1beta1.PageResponse) (*query.PageResponse, error) {
if from == nil {
return nil, nil
Expand Down
6 changes: 0 additions & 6 deletions x/data/module/module.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ package module
import (
"context"
"encoding/json"
"math/rand"

"github.com/gorilla/mux"
"github.com/grpc-ecosystem/grpc-gateway/runtime"
Expand Down Expand Up @@ -163,11 +162,6 @@ func (Module) ProposalContents(_ module.SimulationState) []simtypes.WeightedProp
return nil
}

// RandomizedParams creates randomized data param changes for the simulator.
func (Module) RandomizedParams(_ *rand.Rand) []simtypes.ParamChange {
return nil
}

// RegisterStoreDecoder registers a decoder for data module's types
func (Module) RegisterStoreDecoder(_ sdk.StoreDecoderRegistry) {
}
Expand Down
15 changes: 2 additions & 13 deletions x/data/server/query_attestations_by_attestor.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ package server
import (
"context"

"github.com/cosmos/cosmos-sdk/orm/model/ormlist"
sdk "github.com/cosmos/cosmos-sdk/types"

api "github.com/regen-network/regen-ledger/api/v2/regen/data/v1"
Expand All @@ -24,15 +23,10 @@ func (s serverImpl) AttestationsByAttestor(ctx context.Context, request *data.Qu
return nil, regenerrors.ErrInvalidArgument.Wrapf("attestor: %s", err.Error())
}

pg, err := ormutil.GogoPageReqToPulsarPageReq(request.Pagination)
if err != nil {
return nil, regenerrors.ErrInvalidArgument.Wrap(err.Error())
}

it, err := s.stateStore.DataAttestorTable().List(
ctx,
api.DataAttestorAttestorIndexKey{}.WithAttestor(addr),
ormlist.Paginate(pg),
ormutil.PageReqToOrmPaginate(request.Pagination),
)
if err != nil {
return nil, err
Expand All @@ -58,13 +52,8 @@ func (s serverImpl) AttestationsByAttestor(ctx context.Context, request *data.Qu
})
}

pageRes, err := ormutil.PulsarPageResToGogoPageRes(it.PageResponse())
if err != nil {
return nil, regenerrors.ErrInternal.Wrap(err.Error())
}

return &data.QueryAttestationsByAttestorResponse{
Attestations: attestations,
Pagination: pageRes,
Pagination: ormutil.PageResToCosmosTypes(it.PageResponse()),
}, nil
}
15 changes: 2 additions & 13 deletions x/data/server/query_attestations_by_hash.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ package server
import (
"context"

"github.com/cosmos/cosmos-sdk/orm/model/ormlist"
sdk "github.com/cosmos/cosmos-sdk/types"

api "github.com/regen-network/regen-ledger/api/v2/regen/data/v1"
Expand All @@ -29,15 +28,10 @@ func (s serverImpl) AttestationsByHash(ctx context.Context, request *data.QueryA
return nil, regenerrors.ErrNotFound.Wrapf("data record with IRI: %s", iri)
}

pg, err := ormutil.GogoPageReqToPulsarPageReq(request.Pagination)
if err != nil {
return nil, regenerrors.ErrInvalidArgument.Wrap(err.Error())
}

it, err := s.stateStore.DataAttestorTable().List(
ctx,
api.DataAttestorIdAttestorIndexKey{}.WithId(dataID.Id),
ormlist.Paginate(pg),
ormutil.PageReqToOrmPaginate(request.Pagination),
)
if err != nil {
return nil, err
Expand All @@ -58,13 +52,8 @@ func (s serverImpl) AttestationsByHash(ctx context.Context, request *data.QueryA
})
}

pageRes, err := ormutil.PulsarPageResToGogoPageRes(it.PageResponse())
if err != nil {
return nil, regenerrors.ErrInternal.Wrap(err.Error())
}

return &data.QueryAttestationsByHashResponse{
Attestations: attestations,
Pagination: pageRes,
Pagination: ormutil.PageResToCosmosTypes(it.PageResponse()),
}, nil
}
15 changes: 2 additions & 13 deletions x/data/server/query_attestations_by_iri.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ package server
import (
"context"

"github.com/cosmos/cosmos-sdk/orm/model/ormlist"
sdk "github.com/cosmos/cosmos-sdk/types"

api "github.com/regen-network/regen-ledger/api/v2/regen/data/v1"
Expand All @@ -30,15 +29,10 @@ func (s serverImpl) AttestationsByIRI(ctx context.Context, request *data.QueryAt
return nil, regenerrors.ErrNotFound.Wrapf("data record with IRI: %s", request.Iri)
}

pg, err := ormutil.GogoPageReqToPulsarPageReq(request.Pagination)
if err != nil {
return nil, regenerrors.ErrInvalidArgument.Wrap(err.Error())
}

it, err := s.stateStore.DataAttestorTable().List(
ctx,
api.DataAttestorIdAttestorIndexKey{}.WithId(dataID.Id),
ormlist.Paginate(pg),
ormutil.PageReqToOrmPaginate(request.Pagination),
)
if err != nil {
return nil, err
Expand All @@ -59,13 +53,8 @@ func (s serverImpl) AttestationsByIRI(ctx context.Context, request *data.QueryAt
})
}

pageRes, err := ormutil.PulsarPageResToGogoPageRes(it.PageResponse())
if err != nil {
return nil, regenerrors.ErrInternal.Wrap(err.Error())
}

return &data.QueryAttestationsByIRIResponse{
Attestations: attestations,
Pagination: pageRes,
Pagination: ormutil.PageResToCosmosTypes(it.PageResponse()),
}, nil
}
14 changes: 2 additions & 12 deletions x/data/server/query_resolvers_by_hash.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ package server
import (
"context"

"github.com/cosmos/cosmos-sdk/orm/model/ormlist"
sdk "github.com/cosmos/cosmos-sdk/types"

api "github.com/regen-network/regen-ledger/api/v2/regen/data/v1"
Expand All @@ -28,15 +27,10 @@ func (s serverImpl) ResolversByHash(ctx context.Context, request *data.QueryReso
return nil, regenerrors.ErrNotFound.Wrap("data record with content hash")
}

pg, err := ormutil.GogoPageReqToPulsarPageReq(request.Pagination)
if err != nil {
return nil, regenerrors.ErrInvalidArgument.Wrap(err.Error())
}

it, err := s.stateStore.DataResolverTable().List(
ctx,
api.DataResolverPrimaryKey{}.WithId(dataID.Id),
ormlist.Paginate(pg),
ormutil.PageReqToOrmPaginate(request.Pagination),
)
if err != nil {
return nil, regenerrors.ErrInternal.Wrap(err.Error())
Expand All @@ -63,11 +57,7 @@ func (s serverImpl) ResolversByHash(ctx context.Context, request *data.QueryReso
Manager: manager,
})
}

res.Pagination, err = ormutil.PulsarPageResToGogoPageRes(it.PageResponse())
if err != nil {
return nil, regenerrors.ErrInternal.Wrap(err.Error())
}
res.Pagination = ormutil.PageResToCosmosTypes(it.PageResponse())

return res, nil
}
14 changes: 2 additions & 12 deletions x/data/server/query_resolvers_by_iri.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ package server
import (
"context"

"github.com/cosmos/cosmos-sdk/orm/model/ormlist"
sdk "github.com/cosmos/cosmos-sdk/types"

api "github.com/regen-network/regen-ledger/api/v2/regen/data/v1"
Expand All @@ -29,15 +28,10 @@ func (s serverImpl) ResolversByIRI(ctx context.Context, request *data.QueryResol
return nil, regenerrors.ErrNotFound.Wrapf("data record with IRI: %s", request.Iri)
}

pg, err := ormutil.GogoPageReqToPulsarPageReq(request.Pagination)
if err != nil {
return nil, regenerrors.ErrInvalidArgument.Wrap(err.Error())
}

it, err := s.stateStore.DataResolverTable().List(
ctx,
api.DataResolverPrimaryKey{}.WithId(dataID.Id),
ormlist.Paginate(pg),
ormutil.PageReqToOrmPaginate(request.Pagination),
)
if err != nil {
return nil, regenerrors.ErrInternal.Wrap(err.Error())
Expand All @@ -64,11 +58,7 @@ func (s serverImpl) ResolversByIRI(ctx context.Context, request *data.QueryResol
Manager: manager,
})
}

res.Pagination, err = ormutil.PulsarPageResToGogoPageRes(it.PageResponse())
if err != nil {
return nil, regenerrors.ErrInternal.Wrap(err.Error())
}
res.Pagination = ormutil.PageResToCosmosTypes(it.PageResponse())

return res, nil
}
14 changes: 2 additions & 12 deletions x/data/server/query_resolvers_by_url.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ package server
import (
"context"

"github.com/cosmos/cosmos-sdk/orm/model/ormlist"
sdk "github.com/cosmos/cosmos-sdk/types"

api "github.com/regen-network/regen-ledger/api/v2/regen/data/v1"
Expand All @@ -18,15 +17,10 @@ func (s serverImpl) ResolversByURL(ctx context.Context, request *data.QueryResol
return nil, regenerrors.ErrInvalidArgument.Wrap("URL cannot be empty")
}

pg, err := ormutil.GogoPageReqToPulsarPageReq(request.Pagination)
if err != nil {
return nil, regenerrors.ErrInvalidArgument.Wrap(err.Error())
}

it, err := s.stateStore.ResolverTable().List(
ctx,
api.ResolverUrlIndexKey{}.WithUrl(request.Url),
ormlist.Paginate(pg),
ormutil.PageReqToOrmPaginate(request.Pagination),
)
if err != nil {
return nil, err
Expand All @@ -48,11 +42,7 @@ func (s serverImpl) ResolversByURL(ctx context.Context, request *data.QueryResol
Manager: manager,
})
}

res.Pagination, err = ormutil.PulsarPageResToGogoPageRes(it.PageResponse())
if err != nil {
return nil, regenerrors.ErrInternal.Wrap(err.Error())
}
res.Pagination = ormutil.PageResToCosmosTypes(it.PageResponse())

return res, nil
}

0 comments on commit 0b34951

Please sign in to comment.