userver
C++ Async Framework
Toggle main menu visibility
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
12
USERVER_NAMESPACE_BEGIN
13
14
namespace
grpc_protovalidate::
server
{
15
16
ValidationSettings 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
settings.validate_responses = config[
"validate-responses"
].As<
bool
>(settings.validate_responses);
21
return
settings;
22
}
23
24
Settings Parse(
const
yaml_config::YamlConfig& config, formats::parse::To<Settings>) {
25
Settings settings;
26
settings.global.fail_fast = config[
"fail-fast"
].As<
bool
>(settings.global.fail_fast);
27
settings.global.send_violations = config[
"send-violations"
].As<
bool
>(settings.global.send_violations);
28
settings.global.validate_responses = config[
"validate-responses"
].As<
bool
>(settings.global.validate_responses);
29
settings.per_method = config[
"methods"
].As<utils::impl::TransparentMap<std::string, ValidationSettings>>({});
30
return
settings;
31
}
32
33
ValidatorComponent
::
ValidatorComponent
(
34
const
components
::
ComponentConfig
&
config
,
35
const
components
::
ComponentContext
&
context
36
)
37
:
ugrpc
::
server
::
MiddlewareFactoryComponentBase
(
38
config
,
39
context
,
40
middlewares
::
MiddlewareDependencyBuilder
()
41
.
InGroup
<
middlewares
::
groups
::
Core
>()
42
.
After
<
ugrpc
::
server
::
middlewares
::
deadline_propagation
::
Component
>(
middlewares
::
DependencyType
::
kWeak
)
43
) {}
44
45
std
::
shared_ptr
<
const
ugrpc
::
server
::
MiddlewareBase
>
ValidatorComponent
::
CreateMiddleware
(
46
const
ugrpc
::
server
::
ServiceInfo
&,
47
const
yaml_config
::
YamlConfig
&
middleware_config
48
)
const
{
49
return
std
::
make_shared
<
Middleware
>(
middleware_config
.
As
<
Settings
>());
50
}
51
52
yaml_config
::
Schema
ValidatorComponent
::
GetMiddlewareConfigSchema
()
const
{
return
GetStaticConfigSchema
(); }
53
54
yaml_config
::
Schema
ValidatorComponent
::
GetStaticConfigSchema
() {
55
return
yaml_config
::
MergeSchemasFromResource
<
56
ugrpc
::
server
::
MiddlewareFactoryComponentBase
>(
"src/grpc-protovalidate/server/component.yaml"
);
57
}
58
59
}
// namespace grpc_protovalidate::server
60
61
USERVER_NAMESPACE_END
src
grpc-protovalidate
server
component.cpp
Generated on
for userver by
Doxygen
1.17.0