diff --git a/pkg/server/api/trust/v1/schema.graphql b/pkg/server/api/trust/v1/schema.graphql index 832b7f71c..47c10260e 100644 --- a/pkg/server/api/trust/v1/schema.graphql +++ b/pkg/server/api/trust/v1/schema.graphql @@ -107,17 +107,26 @@ type AuditEdge @nda { node: Audit! } -type ComplianceFramework implements Node { +type ComplianceFramework implements Node + @goModel( + model: "go.probo.inc/probo/pkg/server/api/trust/v1/types.ComplianceFramework" + ) { id: ID! framework: Framework! @goField(forceResolver: true) } -type ComplianceFrameworkConnection { +type ComplianceFrameworkConnection + @goModel( + model: "go.probo.inc/probo/pkg/server/api/trust/v1/types.ComplianceFrameworkConnection" + ) { edges: [ComplianceFrameworkEdge!]! pageInfo: PageInfo! } -type ComplianceFrameworkEdge { +type ComplianceFrameworkEdge + @goModel( + model: "go.probo.inc/probo/pkg/server/api/trust/v1/types.ComplianceFrameworkEdge" + ) { cursor: CursorKey! node: ComplianceFramework! } diff --git a/pkg/server/api/trust/v1/schema/schema.go b/pkg/server/api/trust/v1/schema/schema.go index 9ef1d6049..d86638b49 100644 --- a/pkg/server/api/trust/v1/schema/schema.go +++ b/pkg/server/api/trust/v1/schema/schema.go @@ -1529,17 +1529,26 @@ type AuditEdge @nda { node: Audit! } -type ComplianceFramework implements Node { +type ComplianceFramework implements Node + @goModel( + model: "go.probo.inc/probo/pkg/server/api/trust/v1/types.ComplianceFramework" + ) { id: ID! framework: Framework! @goField(forceResolver: true) } -type ComplianceFrameworkConnection { +type ComplianceFrameworkConnection + @goModel( + model: "go.probo.inc/probo/pkg/server/api/trust/v1/types.ComplianceFrameworkConnection" + ) { edges: [ComplianceFrameworkEdge!]! pageInfo: PageInfo! } -type ComplianceFrameworkEdge { +type ComplianceFrameworkEdge + @goModel( + model: "go.probo.inc/probo/pkg/server/api/trust/v1/types.ComplianceFrameworkEdge" + ) { cursor: CursorKey! node: ComplianceFramework! } @@ -3086,7 +3095,20 @@ func (ec *executionContext) _ComplianceFramework_framework(ctx context.Context, func(ctx context.Context) (any, error) { return ec.Resolvers.ComplianceFramework().Framework(ctx, obj) }, - nil, + func(ctx context.Context, next graphql.Resolver) graphql.Resolver { + directive0 := next + + directive1 := func(ctx context.Context) (any, error) { + if ec.Directives.Nda == nil { + var zeroVal *types.Framework + return zeroVal, errors.New("directive nda is not implemented") + } + return ec.Directives.Nda(ctx, obj, directive0) + } + + next = directive1 + return next + }, ec.marshalNFramework2ᚖgoᚗproboᚗincᚋproboᚋpkgᚋserverᚋapiᚋtrustᚋv1ᚋtypesᚐFramework, true, true, diff --git a/pkg/server/api/trust/v1/types/framework.go b/pkg/server/api/trust/v1/types/framework.go index 146e0a5c6..a8619373e 100644 --- a/pkg/server/api/trust/v1/types/framework.go +++ b/pkg/server/api/trust/v1/types/framework.go @@ -16,7 +16,6 @@ package types import ( "go.probo.inc/probo/pkg/coredata" - "go.probo.inc/probo/pkg/page" ) func NewFramework(f *coredata.Framework) *Framework { @@ -25,31 +24,3 @@ func NewFramework(f *coredata.Framework) *Framework { Name: f.Name, } } - -func NewComplianceFramework(cf *coredata.ComplianceFramework) *ComplianceFramework { - return &ComplianceFramework{ - ID: cf.ID, - FrameworkID: cf.FrameworkID, - } -} - -func NewComplianceFrameworkEdge(cf *coredata.ComplianceFramework) *ComplianceFrameworkEdge { - return &ComplianceFrameworkEdge{ - Cursor: cf.CursorKey(coredata.ComplianceFrameworkOrderFieldRank), - Node: NewComplianceFramework(cf), - } -} - -func NewComplianceFrameworkConnection( - p *page.Page[*coredata.ComplianceFramework, coredata.ComplianceFrameworkOrderField], -) *ComplianceFrameworkConnection { - edges := make([]*ComplianceFrameworkEdge, len(p.Data)) - for i, cf := range p.Data { - edges[i] = NewComplianceFrameworkEdge(cf) - } - - return &ComplianceFrameworkConnection{ - Edges: edges, - PageInfo: NewPageInfo(p), - } -} diff --git a/pkg/server/api/trust/v1/types/types.go b/pkg/server/api/trust/v1/types/types.go index d5f594b22..352807179 100644 --- a/pkg/server/api/trust/v1/types/types.go +++ b/pkg/server/api/trust/v1/types/types.go @@ -45,26 +45,6 @@ type AuditEdge struct { Node *Audit `json:"node"` } -type ComplianceFramework struct { - ID gid.GID `json:"id"` - // FrameworkID is a non-schema field used by the Framework resolver to avoid an extra DB lookup. - FrameworkID gid.GID `json:"-"` - Framework *Framework `json:"framework"` -} - -func (ComplianceFramework) IsNode() {} -func (this ComplianceFramework) GetID() gid.GID { return this.ID } - -type ComplianceFrameworkConnection struct { - Edges []*ComplianceFrameworkEdge `json:"edges"` - PageInfo *PageInfo `json:"pageInfo"` -} - -type ComplianceFrameworkEdge struct { - Cursor page.CursorKey `json:"cursor"` - Node *ComplianceFramework `json:"node"` -} - type Document struct { ID gid.GID `json:"id"` Title string `json:"title"`