@@ -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) ,
@@ -347,7 +344,7 @@ mod tests {
347344 HttpResponse :: Ok ( )
348345 } ;
349346
350- let mut app = init_service (
347+ let app = init_service (
351348 App :: new ( )
352349 . wrap ( Sentry :: builder ( ) . with_hub ( Hub :: current ( ) ) . finish ( ) )
353350 . service ( web:: resource ( "/test" ) . to ( service) ) ,
@@ -357,7 +354,7 @@ mod tests {
357354 // Call the service twice (sequentially) to ensure the middleware isn't sticky
358355 for _ in 0 ..2 {
359356 let req = TestRequest :: get ( ) . uri ( "/test" ) . to_request ( ) ;
360- let res = call_service ( & mut app, req) . await ;
357+ let res = call_service ( & app, req) . await ;
361358 assert ! ( res. status( ) . is_success( ) ) ;
362359 }
363360 } )
@@ -379,14 +376,14 @@ mod tests {
379376 let events = sentry:: test:: with_captured_events ( || {
380377 block_on ( async {
381378 #[ get( "/test" ) ]
382- async fn failing ( _req : HttpRequest ) -> Result < String , Error > {
379+ async fn failing ( _req : HttpRequest ) -> Result < String , actix_web :: Error > {
383380 // Current hub should have no events
384381 _assert_hub_no_events ( ) ;
385382
386383 Err ( io:: Error :: new ( io:: ErrorKind :: Other , "Test Error" ) . into ( ) )
387384 }
388385
389- let mut app = init_service (
386+ let app = init_service (
390387 App :: new ( )
391388 . wrap ( Sentry :: builder ( ) . with_hub ( Hub :: current ( ) ) . finish ( ) )
392389 . service ( failing) ,
@@ -396,7 +393,7 @@ mod tests {
396393 // Call the service twice (sequentially) to ensure the middleware isn't sticky
397394 for _ in 0 ..2 {
398395 let req = TestRequest :: get ( ) . uri ( "/test" ) . to_request ( ) ;
399- let res = call_service ( & mut app, req) . await ;
396+ let res = call_service ( & app, req) . await ;
400397 assert ! ( res. status( ) . is_server_error( ) ) ;
401398 }
402399 } )
@@ -421,15 +418,15 @@ mod tests {
421418 block_on ( async {
422419 let service = || HttpResponse :: NotFound ( ) ;
423420
424- let mut app = init_service (
421+ let app = init_service (
425422 App :: new ( )
426423 . wrap ( Sentry :: builder ( ) . with_hub ( Hub :: current ( ) ) . finish ( ) )
427424 . service ( web:: resource ( "/test" ) . to ( service) ) ,
428425 )
429426 . await ;
430427
431428 let req = TestRequest :: get ( ) . uri ( "/test" ) . to_request ( ) ;
432- let res = call_service ( & mut app, req) . await ;
429+ let res = call_service ( & app, req) . await ;
433430 assert ! ( res. status( ) . is_client_error( ) ) ;
434431 } )
435432 } ) ;
@@ -443,21 +440,23 @@ mod tests {
443440 let events = sentry:: test:: with_captured_events ( || {
444441 block_on ( async {
445442 #[ get( "/test" ) ]
446- async fn original_transaction ( _req : HttpRequest ) -> Result < String , Error > {
443+ async fn original_transaction (
444+ _req : HttpRequest ,
445+ ) -> Result < String , actix_web:: Error > {
447446 // Override transaction name
448447 sentry:: configure_scope ( |scope| scope. set_transaction ( Some ( "new_transaction" ) ) ) ;
449448 Err ( io:: Error :: new ( io:: ErrorKind :: Other , "Test Error" ) . into ( ) )
450449 }
451450
452- let mut app = init_service (
451+ let app = init_service (
453452 App :: new ( )
454453 . wrap ( Sentry :: builder ( ) . with_hub ( Hub :: current ( ) ) . finish ( ) )
455454 . service ( original_transaction) ,
456455 )
457456 . await ;
458457
459458 let req = TestRequest :: get ( ) . uri ( "/test" ) . to_request ( ) ;
460- let res = call_service ( & mut app, req) . await ;
459+ let res = call_service ( & app, req) . await ;
461460 assert ! ( res. status( ) . is_server_error( ) ) ;
462461 } )
463462 } ) ;
@@ -485,11 +484,11 @@ mod tests {
485484
486485 let middleware = Sentry :: builder ( ) . with_hub ( Hub :: current ( ) ) . finish ( ) ;
487486
488- let mut app = init_service ( App :: new ( ) . wrap ( middleware) . service ( hello) ) . await ;
487+ let app = init_service ( App :: new ( ) . wrap ( middleware) . service ( hello) ) . await ;
489488
490489 for _ in 0 ..5 {
491490 let req = TestRequest :: get ( ) . uri ( "/" ) . to_request ( ) ;
492- call_service ( & mut app, req) . await ;
491+ call_service ( & app, req) . await ;
493492 }
494493 } )
495494 } ,
0 commit comments