Add continual improvement snapshots

Signed-off-by: Sacha Al Himdani <sacha@getprobo.com>
This commit is contained in:
Sacha Al Himdani
2025-08-29 14:34:23 +02:00
parent 16c94c4cca
commit 2c237b5bfa
28 changed files with 795 additions and 191 deletions

View File

@@ -876,6 +876,10 @@ enum SnapshotsType
@goEnum(
value: "github.com/getprobo/probo/pkg/coredata.SnapshotsTypeComplianceRegistries"
)
CONTINUAL_IMPROVEMENT_REGISTRIES
@goEnum(
value: "github.com/getprobo/probo/pkg/coredata.SnapshotsTypeContinualImprovementRegistries"
)
}
enum SnapshotOrderField
@@ -1114,6 +1118,10 @@ input ComplianceRegistryFilter {
snapshotId: ID
}
input ContinualImprovementRegistryFilter {
snapshotId: ID
}
# Core Types
type TrustCenter implements Node {
id: ID!
@@ -1271,6 +1279,7 @@ type Organization implements Node {
last: Int
before: CursorKey
orderBy: ContinualImprovementRegistriesOrder
filter: ContinualImprovementRegistryFilter
): ContinualImprovementRegistryConnection! @goField(forceResolver: true)
processingActivityRegistries(
@@ -1745,6 +1754,8 @@ type ComplianceRegistry implements Node {
type ContinualImprovementRegistry implements Node {
id: ID!
snapshotId: ID
sourceId: ID
organization: Organization! @goField(forceResolver: true)
referenceId: String!
description: String

View File

@@ -231,7 +231,9 @@ type ComplexityRoot struct {
Owner func(childComplexity int) int
Priority func(childComplexity int) int
ReferenceID func(childComplexity int) int
SnapshotID func(childComplexity int) int
Source func(childComplexity int) int
SourceID func(childComplexity int) int
Status func(childComplexity int) int
TargetDate func(childComplexity int) int
UpdatedAt func(childComplexity int) int
@@ -875,7 +877,7 @@ type ComplexityRoot struct {
Audits func(childComplexity int, first *int, after *page.CursorKey, last *int, before *page.CursorKey, orderBy *types.AuditOrderBy) int
ComplianceRegistries func(childComplexity int, first *int, after *page.CursorKey, last *int, before *page.CursorKey, orderBy *types.ComplianceRegistryOrderBy, filter *types.ComplianceRegistryFilter) int
Connectors func(childComplexity int, first *int, after *page.CursorKey, last *int, before *page.CursorKey, orderBy *types.ConnectorOrder) int
ContinualImprovementRegistries func(childComplexity int, first *int, after *page.CursorKey, last *int, before *page.CursorKey, orderBy *types.ContinualImprovementRegistriesOrderBy) int
ContinualImprovementRegistries func(childComplexity int, first *int, after *page.CursorKey, last *int, before *page.CursorKey, orderBy *types.ContinualImprovementRegistriesOrderBy, filter *types.ContinualImprovementRegistryFilter) 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
Data func(childComplexity int, first *int, after *page.CursorKey, last *int, before *page.CursorKey, orderBy *types.DatumOrderBy, filter *types.DatumFilter) int
@@ -1672,7 +1674,7 @@ type OrganizationResolver interface {
Audits(ctx context.Context, obj *types.Organization, first *int, after *page.CursorKey, last *int, before *page.CursorKey, orderBy *types.AuditOrderBy) (*types.AuditConnection, error)
NonconformityRegistries(ctx context.Context, obj *types.Organization, first *int, after *page.CursorKey, last *int, before *page.CursorKey, orderBy *types.NonconformityRegistryOrderBy, filter *types.NonconformityRegistryFilter) (*types.NonconformityRegistryConnection, error)
ComplianceRegistries(ctx context.Context, obj *types.Organization, first *int, after *page.CursorKey, last *int, before *page.CursorKey, orderBy *types.ComplianceRegistryOrderBy, filter *types.ComplianceRegistryFilter) (*types.ComplianceRegistryConnection, error)
ContinualImprovementRegistries(ctx context.Context, obj *types.Organization, first *int, after *page.CursorKey, last *int, before *page.CursorKey, orderBy *types.ContinualImprovementRegistriesOrderBy) (*types.ContinualImprovementRegistryConnection, error)
ContinualImprovementRegistries(ctx context.Context, obj *types.Organization, first *int, after *page.CursorKey, last *int, before *page.CursorKey, orderBy *types.ContinualImprovementRegistriesOrderBy, filter *types.ContinualImprovementRegistryFilter) (*types.ContinualImprovementRegistryConnection, error)
ProcessingActivityRegistries(ctx context.Context, obj *types.Organization, first *int, after *page.CursorKey, last *int, before *page.CursorKey, orderBy *types.ProcessingActivityRegistryOrderBy) (*types.ProcessingActivityRegistryConnection, error)
Snapshots(ctx context.Context, obj *types.Organization, first *int, after *page.CursorKey, last *int, before *page.CursorKey, orderBy *types.SnapshotOrderBy) (*types.SnapshotConnection, error)
TrustCenter(ctx context.Context, obj *types.Organization) (*types.TrustCenter, error)
@@ -2346,6 +2348,13 @@ func (e *executableSchema) Complexity(ctx context.Context, typeName, field strin
return e.complexity.ContinualImprovementRegistry.ReferenceID(childComplexity), true
case "ContinualImprovementRegistry.snapshotId":
if e.complexity.ContinualImprovementRegistry.SnapshotID == nil {
break
}
return e.complexity.ContinualImprovementRegistry.SnapshotID(childComplexity), true
case "ContinualImprovementRegistry.source":
if e.complexity.ContinualImprovementRegistry.Source == nil {
break
@@ -2353,6 +2362,13 @@ func (e *executableSchema) Complexity(ctx context.Context, typeName, field strin
return e.complexity.ContinualImprovementRegistry.Source(childComplexity), true
case "ContinualImprovementRegistry.sourceId":
if e.complexity.ContinualImprovementRegistry.SourceID == nil {
break
}
return e.complexity.ContinualImprovementRegistry.SourceID(childComplexity), true
case "ContinualImprovementRegistry.status":
if e.complexity.ContinualImprovementRegistry.Status == nil {
break
@@ -5410,7 +5426,7 @@ func (e *executableSchema) Complexity(ctx context.Context, typeName, field strin
return 0, false
}
return e.complexity.Organization.ContinualImprovementRegistries(childComplexity, args["first"].(*int), args["after"].(*page.CursorKey), args["last"].(*int), args["before"].(*page.CursorKey), args["orderBy"].(*types.ContinualImprovementRegistriesOrderBy)), true
return e.complexity.Organization.ContinualImprovementRegistries(childComplexity, args["first"].(*int), args["after"].(*page.CursorKey), args["last"].(*int), args["before"].(*page.CursorKey), args["orderBy"].(*types.ContinualImprovementRegistriesOrderBy), args["filter"].(*types.ContinualImprovementRegistryFilter)), true
case "Organization.controls":
if e.complexity.Organization.Controls == nil {
@@ -7676,6 +7692,7 @@ func (e *executableSchema) Exec(ctx context.Context) graphql.ResponseHandler {
ec.unmarshalInputConfirmEmailInput,
ec.unmarshalInputConnectorOrder,
ec.unmarshalInputContinualImprovementRegistriesOrder,
ec.unmarshalInputContinualImprovementRegistryFilter,
ec.unmarshalInputControlFilter,
ec.unmarshalInputControlOrder,
ec.unmarshalInputCreateAssetInput,
@@ -8785,6 +8802,10 @@ enum SnapshotsType
@goEnum(
value: "github.com/getprobo/probo/pkg/coredata.SnapshotsTypeComplianceRegistries"
)
CONTINUAL_IMPROVEMENT_REGISTRIES
@goEnum(
value: "github.com/getprobo/probo/pkg/coredata.SnapshotsTypeContinualImprovementRegistries"
)
}
enum SnapshotOrderField
@@ -9023,6 +9044,10 @@ input ComplianceRegistryFilter {
snapshotId: ID
}
input ContinualImprovementRegistryFilter {
snapshotId: ID
}
# Core Types
type TrustCenter implements Node {
id: ID!
@@ -9180,6 +9205,7 @@ type Organization implements Node {
last: Int
before: CursorKey
orderBy: ContinualImprovementRegistriesOrder
filter: ContinualImprovementRegistryFilter
): ContinualImprovementRegistryConnection! @goField(forceResolver: true)
processingActivityRegistries(
@@ -9654,6 +9680,8 @@ type ComplianceRegistry implements Node {
type ContinualImprovementRegistry implements Node {
id: ID!
snapshotId: ID
sourceId: ID
organization: Organization! @goField(forceResolver: true)
referenceId: String!
description: String
@@ -16225,6 +16253,11 @@ func (ec *executionContext) field_Organization_continualImprovementRegistries_ar
return nil, err
}
args["orderBy"] = arg4
arg5, err := ec.field_Organization_continualImprovementRegistries_argsFilter(ctx, rawArgs)
if err != nil {
return nil, err
}
args["filter"] = arg5
return args, nil
}
func (ec *executionContext) field_Organization_continualImprovementRegistries_argsFirst(
@@ -16292,6 +16325,19 @@ func (ec *executionContext) field_Organization_continualImprovementRegistries_ar
return zeroVal, nil
}
func (ec *executionContext) field_Organization_continualImprovementRegistries_argsFilter(
ctx context.Context,
rawArgs map[string]any,
) (*types.ContinualImprovementRegistryFilter, error) {
ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("filter"))
if tmp, ok := rawArgs["filter"]; ok {
return ec.unmarshalOContinualImprovementRegistryFilter2ᚖgithubᚗcomᚋgetproboᚋproboᚋpkgᚋserverᚋapiᚋconsoleᚋv1ᚋtypesᚐContinualImprovementRegistryFilter(ctx, tmp)
}
var zeroVal *types.ContinualImprovementRegistryFilter
return zeroVal, nil
}
func (ec *executionContext) field_Organization_controls_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) {
var err error
args := map[string]any{}
@@ -22615,6 +22661,88 @@ func (ec *executionContext) fieldContext_ContinualImprovementRegistry_id(_ conte
return fc, nil
}
func (ec *executionContext) _ContinualImprovementRegistry_snapshotId(ctx context.Context, field graphql.CollectedField, obj *types.ContinualImprovementRegistry) (ret graphql.Marshaler) {
fc, err := ec.fieldContext_ContinualImprovementRegistry_snapshotId(ctx, field)
if err != nil {
return graphql.Null
}
ctx = graphql.WithFieldContext(ctx, fc)
defer func() {
if r := recover(); r != nil {
ec.Error(ctx, ec.Recover(ctx, r))
ret = graphql.Null
}
}()
resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {
ctx = rctx // use context from middleware stack in children
return obj.SnapshotID, nil
})
if err != nil {
ec.Error(ctx, err)
return graphql.Null
}
if resTmp == nil {
return graphql.Null
}
res := resTmp.(*gid.GID)
fc.Result = res
return ec.marshalOID2ᚖgithubᚗcomᚋgetproboᚋproboᚋpkgᚋgidᚐGID(ctx, field.Selections, res)
}
func (ec *executionContext) fieldContext_ContinualImprovementRegistry_snapshotId(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {
fc = &graphql.FieldContext{
Object: "ContinualImprovementRegistry",
Field: field,
IsMethod: false,
IsResolver: false,
Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {
return nil, errors.New("field of type ID does not have child fields")
},
}
return fc, nil
}
func (ec *executionContext) _ContinualImprovementRegistry_sourceId(ctx context.Context, field graphql.CollectedField, obj *types.ContinualImprovementRegistry) (ret graphql.Marshaler) {
fc, err := ec.fieldContext_ContinualImprovementRegistry_sourceId(ctx, field)
if err != nil {
return graphql.Null
}
ctx = graphql.WithFieldContext(ctx, fc)
defer func() {
if r := recover(); r != nil {
ec.Error(ctx, ec.Recover(ctx, r))
ret = graphql.Null
}
}()
resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {
ctx = rctx // use context from middleware stack in children
return obj.SourceID, nil
})
if err != nil {
ec.Error(ctx, err)
return graphql.Null
}
if resTmp == nil {
return graphql.Null
}
res := resTmp.(*gid.GID)
fc.Result = res
return ec.marshalOID2ᚖgithubᚗcomᚋgetproboᚋproboᚋpkgᚋgidᚐGID(ctx, field.Selections, res)
}
func (ec *executionContext) fieldContext_ContinualImprovementRegistry_sourceId(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {
fc = &graphql.FieldContext{
Object: "ContinualImprovementRegistry",
Field: field,
IsMethod: false,
IsResolver: false,
Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {
return nil, errors.New("field of type ID does not have child fields")
},
}
return fc, nil
}
func (ec *executionContext) _ContinualImprovementRegistry_organization(ctx context.Context, field graphql.CollectedField, obj *types.ContinualImprovementRegistry) (ret graphql.Marshaler) {
fc, err := ec.fieldContext_ContinualImprovementRegistry_organization(ctx, field)
if err != nil {
@@ -23351,6 +23479,10 @@ func (ec *executionContext) fieldContext_ContinualImprovementRegistryEdge_node(_
switch field.Name {
case "id":
return ec.fieldContext_ContinualImprovementRegistry_id(ctx, field)
case "snapshotId":
return ec.fieldContext_ContinualImprovementRegistry_snapshotId(ctx, field)
case "sourceId":
return ec.fieldContext_ContinualImprovementRegistry_sourceId(ctx, field)
case "organization":
return ec.fieldContext_ContinualImprovementRegistry_organization(ctx, field)
case "referenceId":
@@ -42136,7 +42268,7 @@ func (ec *executionContext) _Organization_continualImprovementRegistries(ctx con
}()
resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {
ctx = rctx // use context from middleware stack in children
return ec.resolvers.Organization().ContinualImprovementRegistries(rctx, obj, fc.Args["first"].(*int), fc.Args["after"].(*page.CursorKey), fc.Args["last"].(*int), fc.Args["before"].(*page.CursorKey), fc.Args["orderBy"].(*types.ContinualImprovementRegistriesOrderBy))
return ec.resolvers.Organization().ContinualImprovementRegistries(rctx, obj, fc.Args["first"].(*int), fc.Args["after"].(*page.CursorKey), fc.Args["last"].(*int), fc.Args["before"].(*page.CursorKey), fc.Args["orderBy"].(*types.ContinualImprovementRegistriesOrderBy), fc.Args["filter"].(*types.ContinualImprovementRegistryFilter))
})
if err != nil {
ec.Error(ctx, err)
@@ -49836,6 +49968,10 @@ func (ec *executionContext) fieldContext_UpdateContinualImprovementRegistryPaylo
switch field.Name {
case "id":
return ec.fieldContext_ContinualImprovementRegistry_id(ctx, field)
case "snapshotId":
return ec.fieldContext_ContinualImprovementRegistry_snapshotId(ctx, field)
case "sourceId":
return ec.fieldContext_ContinualImprovementRegistry_sourceId(ctx, field)
case "organization":
return ec.fieldContext_ContinualImprovementRegistry_organization(ctx, field)
case "referenceId":
@@ -59722,6 +59858,33 @@ func (ec *executionContext) unmarshalInputContinualImprovementRegistriesOrder(ct
return it, nil
}
func (ec *executionContext) unmarshalInputContinualImprovementRegistryFilter(ctx context.Context, obj any) (types.ContinualImprovementRegistryFilter, error) {
var it types.ContinualImprovementRegistryFilter
asMap := map[string]any{}
for k, v := range obj.(map[string]any) {
asMap[k] = v
}
fieldsInOrder := [...]string{"snapshotId"}
for _, k := range fieldsInOrder {
v, ok := asMap[k]
if !ok {
continue
}
switch k {
case "snapshotId":
ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("snapshotId"))
data, err := ec.unmarshalOID2ᚖgithubᚗcomᚋgetproboᚋproboᚋpkgᚋgidᚐGID(ctx, v)
if err != nil {
return it, err
}
it.SnapshotID = data
}
}
return it, nil
}
func (ec *executionContext) unmarshalInputControlFilter(ctx context.Context, obj any) (types.ControlFilter, error) {
var it types.ControlFilter
asMap := map[string]any{}
@@ -67291,6 +67454,10 @@ func (ec *executionContext) _ContinualImprovementRegistry(ctx context.Context, s
if out.Values[i] == graphql.Null {
atomic.AddUint32(&out.Invalids, 1)
}
case "snapshotId":
out.Values[i] = ec._ContinualImprovementRegistry_snapshotId(ctx, field, obj)
case "sourceId":
out.Values[i] = ec._ContinualImprovementRegistry_sourceId(ctx, field, obj)
case "organization":
field := field
@@ -84804,20 +84971,22 @@ func (ec *executionContext) marshalNSnapshotsType2githubᚗcomᚋgetproboᚋprob
var (
unmarshalNSnapshotsType2githubᚗcomᚋgetproboᚋproboᚋpkgᚋcoredataᚐSnapshotsType = map[string]coredata.SnapshotsType{
"RISKS": coredata.SnapshotsTypeRisks,
"VENDORS": coredata.SnapshotsTypeVendors,
"ASSETS": coredata.SnapshotsTypeAssets,
"DATA": coredata.SnapshotsTypeData,
"NONCONFORMITY_REGISTRIES": coredata.SnapshotsTypeNonConformityRegistries,
"COMPLIANCE_REGISTRIES": coredata.SnapshotsTypeComplianceRegistries,
"RISKS": coredata.SnapshotsTypeRisks,
"VENDORS": coredata.SnapshotsTypeVendors,
"ASSETS": coredata.SnapshotsTypeAssets,
"DATA": coredata.SnapshotsTypeData,
"NONCONFORMITY_REGISTRIES": coredata.SnapshotsTypeNonConformityRegistries,
"COMPLIANCE_REGISTRIES": coredata.SnapshotsTypeComplianceRegistries,
"CONTINUAL_IMPROVEMENT_REGISTRIES": coredata.SnapshotsTypeContinualImprovementRegistries,
}
marshalNSnapshotsType2githubᚗcomᚋgetproboᚋproboᚋpkgᚋcoredataᚐSnapshotsType = map[coredata.SnapshotsType]string{
coredata.SnapshotsTypeRisks: "RISKS",
coredata.SnapshotsTypeVendors: "VENDORS",
coredata.SnapshotsTypeAssets: "ASSETS",
coredata.SnapshotsTypeData: "DATA",
coredata.SnapshotsTypeNonConformityRegistries: "NONCONFORMITY_REGISTRIES",
coredata.SnapshotsTypeComplianceRegistries: "COMPLIANCE_REGISTRIES",
coredata.SnapshotsTypeRisks: "RISKS",
coredata.SnapshotsTypeVendors: "VENDORS",
coredata.SnapshotsTypeAssets: "ASSETS",
coredata.SnapshotsTypeData: "DATA",
coredata.SnapshotsTypeNonConformityRegistries: "NONCONFORMITY_REGISTRIES",
coredata.SnapshotsTypeComplianceRegistries: "COMPLIANCE_REGISTRIES",
coredata.SnapshotsTypeContinualImprovementRegistries: "CONTINUAL_IMPROVEMENT_REGISTRIES",
}
)
@@ -86983,6 +87152,14 @@ var (
}
)
func (ec *executionContext) unmarshalOContinualImprovementRegistryFilter2ᚖgithubᚗcomᚋgetproboᚋproboᚋpkgᚋserverᚋapiᚋconsoleᚋv1ᚋtypesᚐContinualImprovementRegistryFilter(ctx context.Context, v any) (*types.ContinualImprovementRegistryFilter, error) {
if v == nil {
return nil, nil
}
res, err := ec.unmarshalInputContinualImprovementRegistryFilter(ctx, v)
return &res, graphql.ErrorOnPath(ctx, err)
}
func (ec *executionContext) unmarshalOControlFilter2ᚖgithubᚗcomᚋgetproboᚋproboᚋpkgᚋserverᚋapiᚋconsoleᚋv1ᚋtypesᚐControlFilter(ctx context.Context, v any) (*types.ControlFilter, error) {
if v == nil {
return nil, nil

View File

@@ -30,6 +30,7 @@ type (
Resolver any
ParentID gid.GID
Filter *ContinualImprovementRegistryFilter
}
)
@@ -37,6 +38,7 @@ func NewContinualImprovementRegistryConnection(
p *page.Page[*coredata.ContinualImprovementRegistry, coredata.ContinualImprovementRegistriesOrderField],
parentType any,
parentID gid.GID,
filter *ContinualImprovementRegistryFilter,
) *ContinualImprovementRegistryConnection {
edges := make([]*ContinualImprovementRegistryEdge, len(p.Data))
for i, registry := range p.Data {
@@ -49,12 +51,15 @@ func NewContinualImprovementRegistryConnection(
Resolver: parentType,
ParentID: parentID,
Filter: filter,
}
}
func NewContinualImprovementRegistry(cir *coredata.ContinualImprovementRegistry) *ContinualImprovementRegistry {
return &ContinualImprovementRegistry{
ID: cir.ID,
SnapshotID: cir.SnapshotID,
SourceID: cir.SourceID,
ReferenceID: cir.ReferenceID,
Description: cir.Description,
Source: cir.Source,

View File

@@ -174,6 +174,8 @@ type ConnectorOrder struct {
type ContinualImprovementRegistry struct {
ID gid.GID `json:"id"`
SnapshotID *gid.GID `json:"snapshotId,omitempty"`
SourceID *gid.GID `json:"sourceId,omitempty"`
Organization *Organization `json:"organization"`
ReferenceID string `json:"referenceId"`
Description *string `json:"description,omitempty"`
@@ -194,6 +196,10 @@ type ContinualImprovementRegistryEdge struct {
Node *ContinualImprovementRegistry `json:"node"`
}
type ContinualImprovementRegistryFilter struct {
SnapshotID *gid.GID `json:"snapshotId,omitempty"`
}
type Control struct {
ID gid.GID `json:"id"`
SectionTitle string `json:"sectionTitle"`

View File

@@ -315,7 +315,12 @@ func (r *continualImprovementRegistryConnectionResolver) TotalCount(ctx context.
switch obj.Resolver.(type) {
case *organizationResolver:
count, err := prb.ContinualImprovementRegistries.CountByOrganizationID(ctx, obj.ParentID)
continualImprovementRegistryFilter := coredata.NewContinualImprovementRegistryFilter(nil)
if obj.Filter != nil {
continualImprovementRegistryFilter = coredata.NewContinualImprovementRegistryFilter(&obj.Filter.SnapshotID)
}
count, err := prb.ContinualImprovementRegistries.CountByOrganizationID(ctx, obj.ParentID, continualImprovementRegistryFilter)
if err != nil {
panic(fmt.Errorf("cannot count continual improvement registries: %w", err))
}
@@ -3756,7 +3761,7 @@ func (r *organizationResolver) ComplianceRegistries(ctx context.Context, obj *ty
}
// ContinualImprovementRegistries is the resolver for the continualImprovementRegistries field.
func (r *organizationResolver) ContinualImprovementRegistries(ctx context.Context, obj *types.Organization, first *int, after *page.CursorKey, last *int, before *page.CursorKey, orderBy *types.ContinualImprovementRegistriesOrderBy) (*types.ContinualImprovementRegistryConnection, error) {
func (r *organizationResolver) ContinualImprovementRegistries(ctx context.Context, obj *types.Organization, first *int, after *page.CursorKey, last *int, before *page.CursorKey, orderBy *types.ContinualImprovementRegistriesOrderBy, filter *types.ContinualImprovementRegistryFilter) (*types.ContinualImprovementRegistryConnection, error) {
prb := r.ProboService(ctx, obj.ID.TenantID())
pageOrderBy := page.OrderBy[coredata.ContinualImprovementRegistriesOrderField]{
@@ -3773,12 +3778,17 @@ func (r *organizationResolver) ContinualImprovementRegistries(ctx context.Contex
cursor := types.NewCursor(first, after, last, before, pageOrderBy)
page, err := prb.ContinualImprovementRegistries.ListForOrganizationID(ctx, obj.ID, cursor)
continualImprovementRegistryFilter := coredata.NewContinualImprovementRegistryFilter(nil)
if filter != nil {
continualImprovementRegistryFilter = coredata.NewContinualImprovementRegistryFilter(&filter.SnapshotID)
}
page, err := prb.ContinualImprovementRegistries.ListForOrganizationID(ctx, obj.ID, cursor, continualImprovementRegistryFilter)
if err != nil {
panic(fmt.Errorf("cannot list organization continual improvement registries: %w", err))
}
return types.NewContinualImprovementRegistryConnection(page, r, obj.ID), nil
return types.NewContinualImprovementRegistryConnection(page, r, obj.ID, filter), nil
}
// ProcessingActivityRegistries is the resolver for the processingActivityRegistries field.