@@ -70,7 +70,6 @@ use std::pin::Pin;
7070use std:: sync:: Arc ;
7171
7272use actix_web:: dev:: { Service , ServiceRequest , ServiceResponse , Transform } ;
73- use actix_web:: Error ;
7473use futures_util:: future:: { ok, Future , Ready } ;
7574use futures_util:: FutureExt ;
7675
@@ -150,14 +149,13 @@ impl Default for Sentry {
150149 }
151150}
152151
153- impl < S , B > Transform < S > for Sentry
152+ impl < S , B > Transform < S , ServiceRequest > for Sentry
154153where
155- S : Service < Request = ServiceRequest , Response = ServiceResponse < B > , Error = Error > ,
154+ S : Service < ServiceRequest , Response = ServiceResponse < B > , Error = actix_web :: Error > ,
156155 S :: Future : ' static ,
157156{
158- type Request = ServiceRequest ;
159157 type Response = ServiceResponse < B > ;
160- type Error = Error ;
158+ type Error = actix_web :: Error ;
161159 type Transform = SentryMiddleware < S > ;
162160 type InitError = ( ) ;
163161 type Future = Ready < Result < Self :: Transform , Self :: InitError > > ;
@@ -176,24 +174,23 @@ pub struct SentryMiddleware<S> {
176174 inner : Sentry ,
177175}
178176
179- impl < S , B > Service for SentryMiddleware < S >
177+ impl < S , B > Service < ServiceRequest > for SentryMiddleware < S >
180178where
181- S : Service < Request = ServiceRequest , Response = ServiceResponse < B > , Error = Error > ,
179+ S : Service < ServiceRequest , Response = ServiceResponse < B > , Error = actix_web :: Error > ,
182180 S :: Future : ' static ,
183181{
184- type Request = ServiceRequest ;
185182 type Response = ServiceResponse < B > ;
186- type Error = Error ;
183+ type Error = actix_web :: Error ;
187184 type Future = Pin < Box < dyn Future < Output = Result < Self :: Response , Self :: Error > > > > ;
188185
189186 fn poll_ready (
190- & mut self ,
187+ & self ,
191188 cx : & mut std:: task:: Context < ' _ > ,
192189 ) -> std:: task:: Poll < Result < ( ) , Self :: Error > > {
193190 self . service . poll_ready ( cx)
194191 }
195192
196- fn call ( & mut self , req : ServiceRequest ) -> Self :: Future {
193+ fn call ( & self , req : ServiceRequest ) -> Self :: Future {
197194 let inner = self . inner . clone ( ) ;
198195 let hub = Arc :: new ( Hub :: new_from_top (
199196 inner. hub . clone ( ) . unwrap_or_else ( Hub :: main) ,
@@ -349,7 +346,7 @@ mod tests {
349346 HttpResponse :: Ok ( )
350347 } ;
351348
352- let mut app = init_service (
349+ let app = init_service (
353350 App :: new ( )
354351 . wrap ( Sentry :: builder ( ) . with_hub ( Hub :: current ( ) ) . finish ( ) )
355352 . service ( web:: resource ( "/test" ) . to ( service) ) ,
@@ -359,7 +356,7 @@ mod tests {
359356 // Call the service twice (sequentially) to ensure the middleware isn't sticky
360357 for _ in 0 ..2 {
361358 let req = TestRequest :: get ( ) . uri ( "/test" ) . to_request ( ) ;
362- let res = call_service ( & mut app, req) . await ;
359+ let res = call_service ( & app, req) . await ;
363360 assert ! ( res. status( ) . is_success( ) ) ;
364361 }
365362 } )
@@ -381,14 +378,14 @@ mod tests {
381378 let events = sentry:: test:: with_captured_events ( || {
382379 block_on ( async {
383380 #[ get( "/test" ) ]
384- async fn failing ( _req : HttpRequest ) -> Result < String , Error > {
381+ async fn failing ( _req : HttpRequest ) -> Result < String , actix_web :: Error > {
385382 // Current hub should have no events
386383 _assert_hub_no_events ( ) ;
387384
388385 Err ( io:: Error :: new ( io:: ErrorKind :: Other , "Test Error" ) . into ( ) )
389386 }
390387
391- let mut app = init_service (
388+ let app = init_service (
392389 App :: new ( )
393390 . wrap ( Sentry :: builder ( ) . with_hub ( Hub :: current ( ) ) . finish ( ) )
394391 . service ( failing) ,
@@ -398,7 +395,7 @@ mod tests {
398395 // Call the service twice (sequentially) to ensure the middleware isn't sticky
399396 for _ in 0 ..2 {
400397 let req = TestRequest :: get ( ) . uri ( "/test" ) . to_request ( ) ;
401- let res = call_service ( & mut app, req) . await ;
398+ let res = call_service ( & app, req) . await ;
402399 assert ! ( res. status( ) . is_server_error( ) ) ;
403400 }
404401 } )
@@ -423,15 +420,15 @@ mod tests {
423420 block_on ( async {
424421 let service = || HttpResponse :: NotFound ( ) ;
425422
426- let mut app = init_service (
423+ let app = init_service (
427424 App :: new ( )
428425 . wrap ( Sentry :: builder ( ) . with_hub ( Hub :: current ( ) ) . finish ( ) )
429426 . service ( web:: resource ( "/test" ) . to ( service) ) ,
430427 )
431428 . await ;
432429
433430 let req = TestRequest :: get ( ) . uri ( "/test" ) . to_request ( ) ;
434- let res = call_service ( & mut app, req) . await ;
431+ let res = call_service ( & app, req) . await ;
435432 assert ! ( res. status( ) . is_client_error( ) ) ;
436433 } )
437434 } ) ;
@@ -445,21 +442,23 @@ mod tests {
445442 let events = sentry:: test:: with_captured_events ( || {
446443 block_on ( async {
447444 #[ get( "/test" ) ]
448- async fn original_transaction ( _req : HttpRequest ) -> Result < String , Error > {
445+ async fn original_transaction (
446+ _req : HttpRequest ,
447+ ) -> Result < String , actix_web:: Error > {
449448 // Override transaction name
450449 sentry:: configure_scope ( |scope| scope. set_transaction ( Some ( "new_transaction" ) ) ) ;
451450 Err ( io:: Error :: new ( io:: ErrorKind :: Other , "Test Error" ) . into ( ) )
452451 }
453452
454- let mut app = init_service (
453+ let app = init_service (
455454 App :: new ( )
456455 . wrap ( Sentry :: builder ( ) . with_hub ( Hub :: current ( ) ) . finish ( ) )
457456 . service ( original_transaction) ,
458457 )
459458 . await ;
460459
461460 let req = TestRequest :: get ( ) . uri ( "/test" ) . to_request ( ) ;
462- let res = call_service ( & mut app, req) . await ;
461+ let res = call_service ( & app, req) . await ;
463462 assert ! ( res. status( ) . is_server_error( ) ) ;
464463 } )
465464 } ) ;
@@ -487,11 +486,11 @@ mod tests {
487486
488487 let middleware = Sentry :: builder ( ) . with_hub ( Hub :: current ( ) ) . finish ( ) ;
489488
490- let mut app = init_service ( App :: new ( ) . wrap ( middleware) . service ( hello) ) . await ;
489+ let app = init_service ( App :: new ( ) . wrap ( middleware) . service ( hello) ) . await ;
491490
492491 for _ in 0 ..5 {
493492 let req = TestRequest :: get ( ) . uri ( "/" ) . to_request ( ) ;
494- call_service ( & mut app, req) . await ;
493+ call_service ( & app, req) . await ;
495494 }
496495 } )
497496 } ,
0 commit comments