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! 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! id: ID!
framework: Framework! @goField(forceResolver: true) framework: Framework! @goField(forceResolver: true)
} }
type ComplianceFrameworkConnection { type ComplianceFrameworkConnection
@goModel(
model: "go.probo.inc/probo/pkg/server/api/trust/v1/types.ComplianceFrameworkConnection"
) {
edges: [ComplianceFrameworkEdge!]! edges: [ComplianceFrameworkEdge!]!
pageInfo: PageInfo! pageInfo: PageInfo!
} }
type ComplianceFrameworkEdge { type ComplianceFrameworkEdge
@goModel(
model: "go.probo.inc/probo/pkg/server/api/trust/v1/types.ComplianceFrameworkEdge"
) {
cursor: CursorKey! cursor: CursorKey!
node: ComplianceFramework! node: ComplianceFramework!
} }

View File

@@ -1529,17 +1529,26 @@ type AuditEdge @nda {
node: Audit! 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! id: ID!
framework: Framework! @goField(forceResolver: true) framework: Framework! @goField(forceResolver: true)
} }
type ComplianceFrameworkConnection { type ComplianceFrameworkConnection
@goModel(
model: "go.probo.inc/probo/pkg/server/api/trust/v1/types.ComplianceFrameworkConnection"
) {
edges: [ComplianceFrameworkEdge!]! edges: [ComplianceFrameworkEdge!]!
pageInfo: PageInfo! pageInfo: PageInfo!
} }
type ComplianceFrameworkEdge { type ComplianceFrameworkEdge
@goModel(
model: "go.probo.inc/probo/pkg/server/api/trust/v1/types.ComplianceFrameworkEdge"
) {
cursor: CursorKey! cursor: CursorKey!
node: ComplianceFramework! node: ComplianceFramework!
} }
@@ -3086,7 +3095,20 @@ func (ec *executionContext) _ComplianceFramework_framework(ctx context.Context,
func(ctx context.Context) (any, error) { func(ctx context.Context) (any, error) {
return ec.Resolvers.ComplianceFramework().Framework(ctx, obj) 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, ec.marshalNFramework2ᚖgoᚗproboᚗincᚋproboᚋpkgᚋserverᚋapiᚋtrustᚋv1ᚋtypesᚐFramework,
true, true,
true, true,

View File

@@ -16,7 +16,6 @@ package types
import ( import (
"go.probo.inc/probo/pkg/coredata" "go.probo.inc/probo/pkg/coredata"
"go.probo.inc/probo/pkg/page"
) )
func NewFramework(f *coredata.Framework) *Framework { func NewFramework(f *coredata.Framework) *Framework {
@@ -25,31 +24,3 @@ func NewFramework(f *coredata.Framework) *Framework {
Name: f.Name, 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"` 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 { type Document struct {
ID gid.GID `json:"id"` ID gid.GID `json:"id"`
Title string `json:"title"` Title string `json:"title"`