@@ -25,34 +25,35 @@ where
25
25
B :: Data : Send + Into < Bytes > ,
26
26
B :: Error : Into < axum:: BoxError > ,
27
27
{
28
- let mut trace = None ;
29
- if content_type. as_ref ( ) . starts_with ( "application/json" ) {
28
+ let trace = if content_type. as_ref ( ) . starts_with ( "application/json" ) {
30
29
let json: Json < TracesData > = request. extract ( ) . await ?;
31
- trace = Some ( json. 0 )
30
+ Some ( json. 0 )
32
31
} else if content_type. as_ref ( ) . starts_with ( "application/x-protobuf" ) {
33
32
let protobuf: Protobuf < TracesData > = request. extract ( ) . await ?;
34
- trace = Some ( protobuf. 0 )
35
- }
33
+ Some ( protobuf. 0 )
34
+ } else {
35
+ None
36
+ } ;
36
37
37
- if let Some ( trace) = trace {
38
- let mut envelope = Envelope :: from_request ( None , meta) ;
39
- for resource_span in trace. resource_spans {
40
- for scope_span in resource_span. scope_spans {
41
- for span in scope_span. spans {
42
- let Ok ( payload) = serde_json:: to_vec ( & span) else {
43
- continue ;
44
- } ;
45
- let mut item = Item :: new ( ItemType :: OtelSpan ) ;
46
- item. set_payload ( ContentType :: Json , payload) ;
47
- envelope. add_item ( item) ;
48
- }
38
+ let Some ( trace) = trace else {
39
+ return Ok ( StatusCode :: UNSUPPORTED_MEDIA_TYPE ) ;
40
+ } ;
41
+
42
+ let mut envelope = Envelope :: from_request ( None , meta) ;
43
+ for resource_span in trace. resource_spans {
44
+ for scope_span in resource_span. scope_spans {
45
+ for span in scope_span. spans {
46
+ let Ok ( payload) = serde_json:: to_vec ( & span) else {
47
+ continue ;
48
+ } ;
49
+ let mut item = Item :: new ( ItemType :: OtelSpan ) ;
50
+ item. set_payload ( ContentType :: Json , payload) ;
51
+ envelope. add_item ( item) ;
49
52
}
50
53
}
51
- common:: handle_envelope ( & state, envelope) . await ?;
52
- Ok ( StatusCode :: ACCEPTED )
53
- } else {
54
- Ok ( StatusCode :: UNSUPPORTED_MEDIA_TYPE )
55
54
}
55
+ common:: handle_envelope ( & state, envelope) . await ?;
56
+ Ok ( StatusCode :: ACCEPTED )
56
57
}
57
58
58
59
pub fn route < B > ( config : & Config ) -> MethodRouter < ServiceState , B >
0 commit comments