Skip to content

Commit 462511c

Browse files
committed
Upgrade sentry-actix to actix-web 4.0.0-beta.5
1 parent c7d5374 commit 462511c

File tree

2 files changed

+25
-25
lines changed

2 files changed

+25
-25
lines changed

sentry-actix/Cargo.toml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,14 @@ readme = "README.md"
77
repository = "https://github.com/getsentry/sentry-rust"
88
homepage = "https://sentry.io/welcome/"
99
description = """
10-
Sentry client extension for actix-web 3.
10+
Sentry client extension for actix-web 4.
1111
"""
1212
edition = "2018"
1313

1414
[dependencies]
1515
sentry-core = { version = "0.22.0", path = "../sentry-core", default-features = false }
16-
actix-web = { version = "3", default-features = false }
16+
actix-service = "=2.0.0-beta.5"
17+
actix-web = { version = "=4.0.0-beta.5", default-features = false }
1718
futures-util = { version = "0.3.5", default-features = false }
1819

1920
[dev-dependencies]

sentry-actix/src/lib.rs

Lines changed: 22 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,6 @@ use std::pin::Pin;
7070
use std::sync::Arc;
7171

7272
use actix_web::dev::{Service, ServiceRequest, ServiceResponse, Transform};
73-
use actix_web::Error;
7473
use futures_util::future::{ok, Future, Ready};
7574
use 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
154153
where
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>
180178
where
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

Comments
 (0)