Fix order type

Signed-off-by: Bryan Frimin <bryan@getprobo.com>
This commit is contained in:
Bryan Frimin
2025-06-09 22:29:40 -07:00
parent 771ae6dbc3
commit 82effa84df
5 changed files with 35 additions and 30 deletions

View File

@@ -2163,7 +2163,10 @@ type AssetEdge {
node: Asset! node: Asset!
} }
input AssetOrder { input AssetOrder
@goModel(
model: "github.com/getprobo/probo/pkg/server/api/console/v1/types.AssetOrderBy"
) {
direction: OrderDirection! direction: OrderDirection!
field: AssetOrderField! field: AssetOrderField!
} }

View File

@@ -558,7 +558,7 @@ type ComplexityRoot struct {
} }
Organization struct { Organization struct {
Assets func(childComplexity int, first *int, after *page.CursorKey, last *int, before *page.CursorKey, orderBy *types.AssetOrder) int Assets func(childComplexity int, first *int, after *page.CursorKey, last *int, before *page.CursorKey, orderBy *types.AssetOrderBy) int
Connectors func(childComplexity int, first *int, after *page.CursorKey, last *int, before *page.CursorKey, orderBy *types.ConnectorOrder) int Connectors func(childComplexity int, first *int, after *page.CursorKey, last *int, before *page.CursorKey, orderBy *types.ConnectorOrder) int
Controls func(childComplexity int, first *int, after *page.CursorKey, last *int, before *page.CursorKey, orderBy *types.ControlOrderBy, filter *types.ControlFilter) int Controls func(childComplexity int, first *int, after *page.CursorKey, last *int, before *page.CursorKey, orderBy *types.ControlOrderBy, filter *types.ControlFilter) int
CreatedAt func(childComplexity int) int CreatedAt func(childComplexity int) int
@@ -1030,7 +1030,7 @@ type OrganizationResolver interface {
Measures(ctx context.Context, obj *types.Organization, first *int, after *page.CursorKey, last *int, before *page.CursorKey, orderBy *types.MeasureOrderBy, filter *types.MeasureFilter) (*types.MeasureConnection, error) Measures(ctx context.Context, obj *types.Organization, first *int, after *page.CursorKey, last *int, before *page.CursorKey, orderBy *types.MeasureOrderBy, filter *types.MeasureFilter) (*types.MeasureConnection, error)
Risks(ctx context.Context, obj *types.Organization, first *int, after *page.CursorKey, last *int, before *page.CursorKey, orderBy *types.RiskOrderBy, filter *types.RiskFilter) (*types.RiskConnection, error) Risks(ctx context.Context, obj *types.Organization, first *int, after *page.CursorKey, last *int, before *page.CursorKey, orderBy *types.RiskOrderBy, filter *types.RiskFilter) (*types.RiskConnection, error)
Tasks(ctx context.Context, obj *types.Organization, first *int, after *page.CursorKey, last *int, before *page.CursorKey, orderBy *types.TaskOrderBy) (*types.TaskConnection, error) Tasks(ctx context.Context, obj *types.Organization, first *int, after *page.CursorKey, last *int, before *page.CursorKey, orderBy *types.TaskOrderBy) (*types.TaskConnection, error)
Assets(ctx context.Context, obj *types.Organization, first *int, after *page.CursorKey, last *int, before *page.CursorKey, orderBy *types.AssetOrder) (*types.AssetConnection, error) Assets(ctx context.Context, obj *types.Organization, first *int, after *page.CursorKey, last *int, before *page.CursorKey, orderBy *types.AssetOrderBy) (*types.AssetConnection, error)
Data(ctx context.Context, obj *types.Organization, first *int, after *page.CursorKey, last *int, before *page.CursorKey, orderBy *types.DatumOrderBy) (*types.DatumConnection, error) Data(ctx context.Context, obj *types.Organization, first *int, after *page.CursorKey, last *int, before *page.CursorKey, orderBy *types.DatumOrderBy) (*types.DatumConnection, error)
} }
type PeopleConnectionResolver interface { type PeopleConnectionResolver interface {
@@ -3296,7 +3296,7 @@ func (e *executableSchema) Complexity(ctx context.Context, typeName, field strin
return 0, false return 0, false
} }
return e.complexity.Organization.Assets(childComplexity, args["first"].(*int), args["after"].(*page.CursorKey), args["last"].(*int), args["before"].(*page.CursorKey), args["orderBy"].(*types.AssetOrder)), true return e.complexity.Organization.Assets(childComplexity, args["first"].(*int), args["after"].(*page.CursorKey), args["last"].(*int), args["before"].(*page.CursorKey), args["orderBy"].(*types.AssetOrderBy)), true
case "Organization.connectors": case "Organization.connectors":
if e.complexity.Organization.Connectors == nil { if e.complexity.Organization.Connectors == nil {
@@ -6980,7 +6980,10 @@ type AssetEdge {
node: Asset! node: Asset!
} }
input AssetOrder { input AssetOrder
@goModel(
model: "github.com/getprobo/probo/pkg/server/api/console/v1/types.AssetOrderBy"
) {
direction: OrderDirection! direction: OrderDirection!
field: AssetOrderField! field: AssetOrderField!
} }
@@ -9887,13 +9890,13 @@ func (ec *executionContext) field_Organization_assets_argsBefore(
func (ec *executionContext) field_Organization_assets_argsOrderBy( func (ec *executionContext) field_Organization_assets_argsOrderBy(
ctx context.Context, ctx context.Context,
rawArgs map[string]any, rawArgs map[string]any,
) (*types.AssetOrder, error) { ) (*types.AssetOrderBy, error) {
ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("orderBy")) ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("orderBy"))
if tmp, ok := rawArgs["orderBy"]; ok { if tmp, ok := rawArgs["orderBy"]; ok {
return ec.unmarshalOAssetOrder2ᚖgithubᚗcomᚋgetproboᚋproboᚋpkgᚋserverᚋapiᚋconsoleᚋv1ᚋtypesᚐAssetOrder(ctx, tmp) return ec.unmarshalOAssetOrder2ᚖgithubᚗcomᚋgetproboᚋproboᚋpkgᚋserverᚋapiᚋconsoleᚋv1ᚋtypesᚐAssetOrderBy(ctx, tmp)
} }
var zeroVal *types.AssetOrder var zeroVal *types.AssetOrderBy
return zeroVal, nil return zeroVal, nil
} }
@@ -26213,7 +26216,7 @@ func (ec *executionContext) _Organization_assets(ctx context.Context, field grap
}() }()
resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {
ctx = rctx // use context from middleware stack in children ctx = rctx // use context from middleware stack in children
return ec.resolvers.Organization().Assets(rctx, obj, fc.Args["first"].(*int), fc.Args["after"].(*page.CursorKey), fc.Args["last"].(*int), fc.Args["before"].(*page.CursorKey), fc.Args["orderBy"].(*types.AssetOrder)) return ec.resolvers.Organization().Assets(rctx, obj, fc.Args["first"].(*int), fc.Args["after"].(*page.CursorKey), fc.Args["last"].(*int), fc.Args["before"].(*page.CursorKey), fc.Args["orderBy"].(*types.AssetOrderBy))
}) })
if err != nil { if err != nil {
ec.Error(ctx, err) ec.Error(ctx, err)
@@ -36768,8 +36771,8 @@ func (ec *executionContext) unmarshalInputAssessVendorInput(ctx context.Context,
return it, nil return it, nil
} }
func (ec *executionContext) unmarshalInputAssetOrder(ctx context.Context, obj any) (types.AssetOrder, error) { func (ec *executionContext) unmarshalInputAssetOrder(ctx context.Context, obj any) (types.AssetOrderBy, error) {
var it types.AssetOrder var it types.AssetOrderBy
asMap := map[string]any{} asMap := map[string]any{}
for k, v := range obj.(map[string]any) { for k, v := range obj.(map[string]any) {
asMap[k] = v asMap[k] = v
@@ -53640,7 +53643,7 @@ func (ec *executionContext) marshalN__TypeKind2string(ctx context.Context, sel a
return res return res
} }
func (ec *executionContext) unmarshalOAssetOrder2ᚖgithubᚗcomᚋgetproboᚋproboᚋpkgᚋserverᚋapiᚋconsoleᚋv1ᚋtypesᚐAssetOrder(ctx context.Context, v any) (*types.AssetOrder, error) { func (ec *executionContext) unmarshalOAssetOrder2ᚖgithubᚗcomᚋgetproboᚋproboᚋpkgᚋserverᚋapiᚋconsoleᚋv1ᚋtypesᚐAssetOrderBy(ctx context.Context, v any) (*types.AssetOrderBy, error) {
if v == nil { if v == nil {
return nil, nil return nil, nil
} }

View File

@@ -5,6 +5,22 @@ import (
"github.com/getprobo/probo/pkg/page" "github.com/getprobo/probo/pkg/page"
) )
type (
AssetOrderBy OrderBy[coredata.AssetOrderField]
)
func NewAssetConnection(page *page.Page[*coredata.Asset, coredata.AssetOrderField]) *AssetConnection {
edges := make([]*AssetEdge, len(page.Data))
for i, asset := range page.Data {
edges[i] = NewAssetEdge(asset, page.Cursor.OrderBy.Field)
}
return &AssetConnection{
Edges: edges,
PageInfo: NewPageInfo(page),
}
}
func NewAsset(asset *coredata.Asset) *Asset { func NewAsset(asset *coredata.Asset) *Asset {
return &Asset{ return &Asset{
ID: asset.ID, ID: asset.ID,
@@ -24,15 +40,3 @@ func NewAssetEdge(asset *coredata.Asset, orderField coredata.AssetOrderField) *A
Cursor: asset.CursorKey(orderField), Cursor: asset.CursorKey(orderField),
} }
} }
func NewAssetConnection(page *page.Page[*coredata.Asset, coredata.AssetOrderField]) *AssetConnection {
edges := make([]*AssetEdge, len(page.Data))
for i, asset := range page.Data {
edges[i] = NewAssetEdge(asset, page.Cursor.OrderBy.Field)
}
return &AssetConnection{
Edges: edges,
PageInfo: NewPageInfo(page),
}
}

View File

@@ -52,11 +52,6 @@ type AssetEdge struct {
Node *Asset `json:"node"` Node *Asset `json:"node"`
} }
type AssetOrder struct {
Direction page.OrderDirection `json:"direction"`
Field coredata.AssetOrderField `json:"field"`
}
type AssignTaskInput struct { type AssignTaskInput struct {
TaskID gid.GID `json:"taskId"` TaskID gid.GID `json:"taskId"`
AssignedToID gid.GID `json:"assignedToId"` AssignedToID gid.GID `json:"assignedToId"`

View File

@@ -2335,7 +2335,7 @@ func (r *organizationResolver) Tasks(ctx context.Context, obj *types.Organizatio
} }
// Assets is the resolver for the assets field. // Assets is the resolver for the assets field.
func (r *organizationResolver) Assets(ctx context.Context, obj *types.Organization, first *int, after *page.CursorKey, last *int, before *page.CursorKey, orderBy *types.AssetOrder) (*types.AssetConnection, error) { func (r *organizationResolver) Assets(ctx context.Context, obj *types.Organization, first *int, after *page.CursorKey, last *int, before *page.CursorKey, orderBy *types.AssetOrderBy) (*types.AssetConnection, error) {
svc := GetTenantService(ctx, r.proboSvc, obj.ID.TenantID()) svc := GetTenantService(ctx, r.proboSvc, obj.ID.TenantID())
pageOrderBy := page.OrderBy[coredata.AssetOrderField]{ pageOrderBy := page.OrderBy[coredata.AssetOrderField]{