Fix compliance graphql schema

Signed-off-by: Sacha Al Himdani <sacha@getprobo.com>
This commit is contained in:
Sacha Al Himdani
2026-03-04 16:44:23 +01:00
parent c17c53e80f
commit 0483d7b343
4 changed files with 38 additions and 56 deletions

View File

@@ -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!
}

View File

@@ -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,

View File

@@ -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),
}
}

View File

@@ -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"`