Skip to content

Commit 6dbf966

Browse files
jplatteKbowman
authored andcommitted
Upgrade actix-web and actix-service
The latest actix-service is now stable and actix-web has since had some additional work added to the beta branch. This adds those new dependencies.
1 parent bf71bf4 commit 6dbf966

File tree

2 files changed

+26
-26
lines changed

2 files changed

+26
-26
lines changed

sentry-actix/Cargo.toml

Lines changed: 4 additions & 3 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]
15-
sentry-core = { version = "0.23.0", path = "../sentry-core", default-features = false }
16-
actix-web = { version = "3", default-features = false }
15+
sentry-core = { version = "0.23.0", path = "../sentry-core", default-features = false, features = ["client"] }
16+
actix-service = "2.0"
17+
actix-web = { version = "4.0.0-beta.10", 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),
@@ -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

Comments
 (0)