@@ -83,7 +83,7 @@ use actix_web::middleware::{Middleware, Response, Started};
8383use actix_web:: { Error , HttpMessage , HttpRequest , HttpResponse } ;
8484use failure:: Fail ;
8585use sentry:: integrations:: failure:: exception_from_single_fail;
86- use sentry:: protocol:: { ClientSdkPackageInfo , Event , Level } ;
86+ use sentry:: protocol:: { ClientSdkPackage , Event , Level } ;
8787use sentry:: { Hub , Uuid } ;
8888use std:: borrow:: Cow ;
8989use std:: sync:: { Arc , Mutex } ;
@@ -93,13 +93,6 @@ pub struct SentryMiddlewareBuilder {
9393 middleware : SentryMiddleware ,
9494}
9595
96- /// Reports certain failures to sentry.
97- pub struct SentryMiddleware {
98- hub : Option < Arc < Hub > > ,
99- emit_header : bool ,
100- capture_server_errors : bool ,
101- }
102-
10396impl SentryMiddlewareBuilder {
10497 /// Finishes the building and returns a middleware
10598 pub fn finish ( self ) -> SentryMiddleware {
@@ -133,6 +126,13 @@ impl SentryMiddlewareBuilder {
133126 }
134127}
135128
129+ /// Reports certain failures to sentry.
130+ pub struct SentryMiddleware {
131+ hub : Option < Arc < Hub > > ,
132+ emit_header : bool ,
133+ capture_server_errors : bool ,
134+ }
135+
136136impl SentryMiddleware {
137137 /// Creates a new sentry middleware.
138138 pub fn new ( ) -> SentryMiddleware {
@@ -158,19 +158,23 @@ impl SentryMiddleware {
158158 }
159159}
160160
161+ impl Default for SentryMiddleware {
162+ fn default ( ) -> Self {
163+ SentryMiddleware :: new ( )
164+ }
165+ }
166+
161167fn extract_request < S : ' static > (
162168 req : & HttpRequest < S > ,
163169 with_pii : bool ,
164170) -> ( Option < String > , sentry:: protocol:: Request ) {
165171 let resource = req. resource ( ) ;
166172 let transaction = if let Some ( rdef) = resource. rdef ( ) {
167173 Some ( rdef. pattern ( ) . to_string ( ) )
174+ } else if resource. name ( ) != "" {
175+ Some ( resource. name ( ) . to_string ( ) )
168176 } else {
169- if resource. name ( ) != "" {
170- Some ( resource. name ( ) . to_string ( ) )
171- } else {
172- None
173- }
177+ None
174178 } ;
175179 let mut sentry_req = sentry:: protocol:: Request {
176180 url : format ! (
@@ -229,8 +233,8 @@ impl<S: 'static> Middleware<S> for SentryMiddleware {
229233
230234 if let Some ( sdk) = event. sdk . take ( ) {
231235 let mut sdk = sdk. into_owned ( ) ;
232- sdk. packages . push ( ClientSdkPackageInfo {
233- package_name : "sentry-actix" . into ( ) ,
236+ sdk. packages . push ( ClientSdkPackage {
237+ name : "sentry-actix" . into ( ) ,
234238 version : env ! ( "CARGO_PKG_VERSION" ) . into ( ) ,
235239 } ) ;
236240 event. sdk = Some ( Cow :: Owned ( sdk) ) ;
@@ -255,7 +259,7 @@ impl<S: 'static> Middleware<S> for SentryMiddleware {
255259 Some ( event_id) if self . emit_header => {
256260 resp. headers_mut ( ) . insert (
257261 "x-sentry-event" ,
258- event_id. simple ( ) . to_string ( ) . parse ( ) . unwrap ( ) ,
262+ event_id. to_simple_ref ( ) . to_string ( ) . parse ( ) . unwrap ( ) ,
259263 ) ;
260264 }
261265 _ => { }
0 commit comments