userver: /data/code/userver/libraries/grpc-protovalidate/src/grpc-protovalidate/server/component.cpp Source File
Loading...
Searching...
No Matches
component.cpp
1#include <userver/grpc-protovalidate/server/component.hpp>
2
3#include <userver/ugrpc/server/middlewares/deadline_propagation/component.hpp>
4#include <userver/yaml_config/merge_schemas.hpp>
5
6#include <grpc-protovalidate/server/middleware.hpp>
7
8#ifndef ARCADIA_ROOT
9#include "generated/src/grpc-protovalidate/server/component.yaml.hpp" // Y_IGNORE
10#endif
11
12USERVER_NAMESPACE_BEGIN
13
14namespace grpc_protovalidate::server {
15
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.send_violations = config["send-violations"].As<bool>(settings.send_violations);
20 return settings;
21}
22
23Settings Parse(const yaml_config::YamlConfig& config, formats::parse::To<Settings>) {
24 Settings settings;
25 settings.global.fail_fast = config["fail-fast"].As<bool>(settings.global.fail_fast);
26 settings.global.send_violations = config["send-violations"].As<bool>(settings.global.send_violations);
27 settings.per_method = config["methods"].As<utils::impl::TransparentMap<std::string, ValidationSettings>>({});
28 return settings;
29}
30
34)
36 config,
37 context,
41 ) {}
42
44 const ugrpc::server::ServiceInfo&,
46) const {
48}
49
51
54 ugrpc::server::MiddlewareFactoryComponentBase>("src/grpc-protovalidate/server/component.yaml");
55}
56
57} // namespace grpc_protovalidate::server
58
59USERVER_NAMESPACE_END