From c12409226628bcd2847a024c9958ce2149c0be8e Mon Sep 17 00:00:00 2001 From: Bryan Frimin Date: Mon, 22 Dec 2025 11:12:02 +0100 Subject: [PATCH] Add members order by Signed-off-by: Bryan Frimin --- pkg/server/api/connect/v1/schema.graphql | 1 + pkg/server/api/connect/v1/schema/schema.go | 31 +++++++--------------- pkg/server/api/connect/v1/v1_resolver.go | 6 ++++- 3 files changed, 16 insertions(+), 22 deletions(-) diff --git a/pkg/server/api/connect/v1/schema.graphql b/pkg/server/api/connect/v1/schema.graphql index 101f82fd8..ff0a0f4b5 100644 --- a/pkg/server/api/connect/v1/schema.graphql +++ b/pkg/server/api/connect/v1/schema.graphql @@ -197,6 +197,7 @@ type Organization implements Node { after: CursorKey last: Int before: CursorKey + orderBy: MembershipOrder ): MembershipConnection @goField(forceResolver: true) invitations( diff --git a/pkg/server/api/connect/v1/schema/schema.go b/pkg/server/api/connect/v1/schema/schema.go index b28a3154e..557220d2b 100644 --- a/pkg/server/api/connect/v1/schema/schema.go +++ b/pkg/server/api/connect/v1/schema/schema.go @@ -236,7 +236,7 @@ type ComplexityRoot struct { ID func(childComplexity int) int Invitations func(childComplexity int, first *int, after *page.CursorKey, last *int, before *page.CursorKey, status *coredata.InvitationStatus) int LogoURL func(childComplexity int) int - Members func(childComplexity int, first *int, after *page.CursorKey, last *int, before *page.CursorKey) int + Members func(childComplexity int, first *int, after *page.CursorKey, last *int, before *page.CursorKey, orderBy *types.MembershipOrderBy) int Name func(childComplexity int) int SamlConfigurations func(childComplexity int, first *int, after *page.CursorKey, last *int, before *page.CursorKey) int UpdatedAt func(childComplexity int) int @@ -483,7 +483,7 @@ type OrganizationResolver interface { LogoURL(ctx context.Context, obj *types.Organization) (*string, error) HorizontalLogoURL(ctx context.Context, obj *types.Organization) (*string, error) - Members(ctx context.Context, obj *types.Organization, first *int, after *page.CursorKey, last *int, before *page.CursorKey) (*types.MembershipConnection, error) + Members(ctx context.Context, obj *types.Organization, first *int, after *page.CursorKey, last *int, before *page.CursorKey, orderBy *types.MembershipOrderBy) (*types.MembershipConnection, error) Invitations(ctx context.Context, obj *types.Organization, first *int, after *page.CursorKey, last *int, before *page.CursorKey, status *coredata.InvitationStatus) (*types.InvitationConnection, error) SamlConfigurations(ctx context.Context, obj *types.Organization, first *int, after *page.CursorKey, last *int, before *page.CursorKey) (*types.SAMLConfigurationConnection, error) } @@ -1290,7 +1290,7 @@ func (e *executableSchema) Complexity(ctx context.Context, typeName, field strin return 0, false } - return e.complexity.Organization.Members(childComplexity, args["first"].(*int), args["after"].(*page.CursorKey), args["last"].(*int), args["before"].(*page.CursorKey)), true + return e.complexity.Organization.Members(childComplexity, args["first"].(*int), args["after"].(*page.CursorKey), args["last"].(*int), args["before"].(*page.CursorKey), args["orderBy"].(*types.MembershipOrderBy)), true case "Organization.name": if e.complexity.Organization.Name == nil { break @@ -2218,6 +2218,7 @@ type Organization implements Node { after: CursorKey last: Int before: CursorKey + orderBy: MembershipOrder ): MembershipConnection @goField(forceResolver: true) invitations( @@ -2628,23 +2629,6 @@ input DeleteOrganizationHorizontalLogoInput { organizationId: ID! } -input SessionPolicyInput { - maxSessionDurationHours: Int - idleTimeoutMinutes: Int - maxConcurrentSessions: Int - requireReauthForSensitiveActions: Boolean -} - -input AddIPAllowlistEntryInput { - organizationId: ID! - cidr: String! - description: String -} - -input RemoveIPAllowlistEntryInput { - entryId: ID! -} - input InviteMemberInput { organizationId: ID! email: EmailAddr! @@ -3298,6 +3282,11 @@ func (ec *executionContext) field_Organization_members_args(ctx context.Context, return nil, err } args["before"] = arg3 + arg4, err := graphql.ProcessArgField(ctx, rawArgs, "orderBy", ec.unmarshalOMembershipOrder2ᚖgoᚗproboᚗincᚋproboᚋpkgᚋserverᚋapiᚋconnectᚋv1ᚋtypesᚐMembershipOrderBy) + if err != nil { + return nil, err + } + args["orderBy"] = arg4 return args, nil } @@ -7651,7 +7640,7 @@ func (ec *executionContext) _Organization_members(ctx context.Context, field gra ec.fieldContext_Organization_members, func(ctx context.Context) (any, error) { fc := graphql.GetFieldContext(ctx) - return ec.resolvers.Organization().Members(ctx, obj, fc.Args["first"].(*int), fc.Args["after"].(*page.CursorKey), fc.Args["last"].(*int), fc.Args["before"].(*page.CursorKey)) + return ec.resolvers.Organization().Members(ctx, obj, fc.Args["first"].(*int), fc.Args["after"].(*page.CursorKey), fc.Args["last"].(*int), fc.Args["before"].(*page.CursorKey), fc.Args["orderBy"].(*types.MembershipOrderBy)) }, nil, ec.marshalOMembershipConnection2ᚖgoᚗproboᚗincᚋproboᚋpkgᚋserverᚋapiᚋconnectᚋv1ᚋtypesᚐMembershipConnection, diff --git a/pkg/server/api/connect/v1/v1_resolver.go b/pkg/server/api/connect/v1/v1_resolver.go index 190ffc3bf..98d5946fe 100644 --- a/pkg/server/api/connect/v1/v1_resolver.go +++ b/pkg/server/api/connect/v1/v1_resolver.go @@ -937,11 +937,15 @@ func (r *organizationResolver) HorizontalLogoURL(ctx context.Context, obj *types } // Members is the resolver for the members field. -func (r *organizationResolver) Members(ctx context.Context, obj *types.Organization, first *int, after *page.CursorKey, last *int, before *page.CursorKey) (*types.MembershipConnection, error) { +func (r *organizationResolver) Members(ctx context.Context, obj *types.Organization, first *int, after *page.CursorKey, last *int, before *page.CursorKey, orderBy *types.MembershipOrderBy) (*types.MembershipConnection, error) { pageOrderBy := page.OrderBy[coredata.MembershipOrderField]{ Field: coredata.MembershipOrderFieldCreatedAt, Direction: page.OrderDirectionDesc, } + if orderBy != nil { + pageOrderBy.Field = coredata.MembershipOrderField(orderBy.Field) + pageOrderBy.Direction = page.OrderDirection(orderBy.Direction) + } cursor := cursor.NewCursor(first, after, last, before, pageOrderBy)