Skip to content

Commit db3d269

Browse files
committed
Validator generator
1 parent 3654a89 commit db3d269

11 files changed

Lines changed: 1194 additions & 212 deletions

File tree

chasm/lib/nexusoperation/frontend.go

Lines changed: 9 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,9 @@ import (
1010
"go.temporal.io/api/workflowservice/v1"
1111
"go.temporal.io/server/chasm"
1212
nexusoperationpb "go.temporal.io/server/chasm/lib/nexusoperation/gen/nexusoperationpb/v1"
13-
"go.temporal.io/server/common/log"
1413
"go.temporal.io/server/common/namespace"
1514
commonnexus "go.temporal.io/server/common/nexus"
16-
"go.temporal.io/server/common/searchattribute"
15+
"go.temporal.io/server/common/validation"
1716
"google.golang.org/protobuf/types/known/durationpb"
1817
"google.golang.org/protobuf/types/known/emptypb"
1918
"google.golang.org/protobuf/types/known/timestamppb"
@@ -36,30 +35,24 @@ var ErrStandaloneNexusOperationDisabled = serviceerror.NewUnimplemented("Standal
3635
type frontendHandler struct {
3736
client nexusoperationpb.NexusOperationServiceClient
3837
config *Config
39-
logger log.Logger
4038
namespaceRegistry namespace.Registry
4139
endpointRegistry commonnexus.EndpointRegistry
42-
saMapperProvider searchattribute.MapperProvider
43-
saValidator *searchattribute.Validator
40+
validatorRegistry *validation.ValidatorRegistry
4441
}
4542

4643
func NewFrontendHandler(
4744
client nexusoperationpb.NexusOperationServiceClient,
4845
config *Config,
49-
logger log.Logger,
5046
namespaceRegistry namespace.Registry,
5147
endpointRegistry commonnexus.EndpointRegistry,
52-
saMapperProvider searchattribute.MapperProvider,
53-
saValidator *searchattribute.Validator,
48+
validatorRegistry *validation.ValidatorRegistry,
5449
) FrontendHandler {
5550
return &frontendHandler{
5651
client: client,
5752
config: config,
58-
logger: logger,
5953
namespaceRegistry: namespaceRegistry,
6054
endpointRegistry: endpointRegistry,
61-
saMapperProvider: saMapperProvider,
62-
saValidator: saValidator,
55+
validatorRegistry: validatorRegistry,
6356
}
6457
}
6558

@@ -76,7 +69,11 @@ func (h *frontendHandler) StartNexusOperationExecution(
7669
return nil, err
7770
}
7871

79-
if err := validateAndNormalizeStartRequest(req, h.config, h.logger, h.saMapperProvider, h.saValidator); err != nil {
72+
validator, ok := validation.ValidatorFor[workflowservice.StartNexusOperationExecutionRequest](h.validatorRegistry)
73+
if !ok {
74+
return nil, serviceerror.NewInternal("validator is not registered for StartNexusOperationExecutionRequest")
75+
}
76+
if err := validator.ValidateAndNormalize(req); err != nil {
8077
return nil, err
8178
}
8279

chasm/lib/nexusoperation/fx.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ var Module = fx.Module(
4848
var FrontendModule = fx.Module(
4949
"chasm.lib.nexusoperation.frontend",
5050
fx.Provide(configProvider),
51+
validatorModule,
5152
fx.Provide(nexusoperationpb.NewNexusOperationServiceLayeredClient),
5253
fx.Provide(NewFrontendHandler),
5354
fx.Provide(newComponentOnlyLibrary),

chasm/lib/nexusoperation/validator.go

Lines changed: 333 additions & 198 deletions
Large diffs are not rendered by default.

chasm/lib/nexusoperation/validator_gen.go

Lines changed: 266 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
go.temporal.io/api/workflowservice/v1.StartNexusOperationExecutionRequest
2+
go.temporal.io/api/workflowservice/v1.DescribeNexusOperationExecutionRequest
3+
go.temporal.io/api/workflowservice/v1.PollNexusOperationExecutionRequest
4+
go.temporal.io/api/workflowservice/v1.RequestCancelNexusOperationExecutionRequest
5+
go.temporal.io/api/workflowservice/v1.TerminateNexusOperationExecutionRequest
6+
go.temporal.io/api/workflowservice/v1.DeleteNexusOperationExecutionRequest

0 commit comments

Comments
 (0)