14namespace grpc_protovalidate::client {
16ValidationSettings Parse(
const yaml_config::YamlConfig& config, formats::parse::To<ValidationSettings>) {
17 ValidationSettings settings;
18 settings.fail_fast = config[
"fail-fast"].As<
bool>(settings.fail_fast);
19 settings.validate_requests = config[
"validate-requests"].As<
bool>(settings.validate_requests);
23Settings Parse(
const yaml_config::YamlConfig& config, formats::parse::To<Settings>) {
25 settings.global.fail_fast = config[
"fail-fast"].As<
bool>(settings.global.fail_fast);
26 settings.global.validate_requests = config[
"validate-requests"].As<
bool>(settings.global.validate_requests);
27 settings.per_method = config[
"methods"].As<utils::impl::TransparentMap<std::string, ValidationSettings>>({});
31ValidatorComponent::ValidatorComponent(
32 const components::ComponentConfig& config,
33 const components::ComponentContext& context
35 : ugrpc::client::MiddlewareFactoryComponentBase(
38 middlewares::MiddlewareDependencyBuilder().InGroup<middlewares::groups::Core>()
41std::shared_ptr<
const ugrpc::client::MiddlewareBase> ValidatorComponent::CreateMiddleware(
42 const ugrpc::client::ClientInfo& ,
43 const yaml_config::YamlConfig& middleware_config
45 return std::make_shared<Middleware>(middleware_config.As<Settings>());
48yaml_config::Schema ValidatorComponent::GetMiddlewareConfigSchema()
const {
return GetStaticConfigSchema(); }
50yaml_config::Schema ValidatorComponent::GetStaticConfigSchema() {
51 return yaml_config::MergeSchemasFromResource<
52 ugrpc::client::MiddlewareFactoryComponentBase>(
"src/grpc-protovalidate/client/component.yaml");