Skip to content

Commit 98f2b93

Browse files
committed
refactor(core): pull in actix::web into root http module
1 parent 3a7fdb1 commit 98f2b93

File tree

5 files changed

+32
-29
lines changed

5 files changed

+32
-29
lines changed

src/core/auth/routes.rs

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@ use anyhow::Result;
33
use super::User;
44
use crate::core::auth::ViewerModel;
55
use crate::core::db::PgPool;
6+
use crate::core::http;
67
use crate::core::http::api_v2_operation;
78
use crate::core::http::errors::*;
8-
use crate::core::http::web;
99
use crate::core::http::Apiv2Schema;
1010

1111
use crate::core::db::model::DatabaseModel;
@@ -18,14 +18,14 @@ pub struct AuthenticationResponse {
1818

1919
#[api_v2_operation]
2020
async fn viewer(
21-
_req: web::HttpRequest,
21+
_req: http::HttpRequest,
2222
viewer: super::Viewer,
23-
db_pool: web::Data<PgPool>,
24-
) -> Result<web::Json<User>, Error> {
23+
db_pool: http::Data<PgPool>,
24+
) -> Result<http::Json<User>, Error> {
2525
if let Some(id) = viewer.id {
2626
let viewer = User::get(id, &db_pool).await;
2727
match viewer {
28-
Ok(user) => Ok(web::Json(user)),
28+
Ok(user) => Ok(http::Json(user)),
2929
Err(_err) => Err(ErrorBadRequest("Not Authenticated")),
3030
}
3131
} else {
@@ -35,27 +35,27 @@ async fn viewer(
3535

3636
#[api_v2_operation]
3737
async fn create(
38-
user: web::Json<super::NewUser>,
39-
db_pool: web::Data<PgPool>,
40-
) -> Result<web::Json<AuthenticationResponse>, Error> {
38+
user: http::Json<super::NewUser>,
39+
db_pool: http::Data<PgPool>,
40+
) -> Result<http::Json<AuthenticationResponse>, Error> {
4141
let res = super::User::create_user(user.into_inner(), db_pool.get_ref()).await;
4242
match res {
4343
Ok(user) => {
4444
let res = AuthenticationResponse {
4545
user: user.clone(),
4646
token: super::utils::jwt_get(user.id),
4747
};
48-
Ok(web::Json(res))
48+
Ok(http::Json(res))
4949
}
5050
Err(_e) => Err(ErrorConflict("user-exists")),
5151
}
5252
}
5353

5454
#[api_v2_operation]
5555
async fn authenticate(
56-
user: web::Json<super::LoginUser>,
57-
db_pool: web::Data<PgPool>,
58-
) -> Result<web::Json<AuthenticationResponse>, Error> {
56+
user: http::Json<super::LoginUser>,
57+
db_pool: http::Data<PgPool>,
58+
) -> Result<http::Json<AuthenticationResponse>, Error> {
5959
let row = super::User::find_user_by_credentials(
6060
user.email.clone(),
6161
user.password.clone(),
@@ -69,15 +69,15 @@ async fn authenticate(
6969
token: super::utils::jwt_get(user.id),
7070
user,
7171
};
72-
Ok(web::Json(res))
72+
Ok(http::Json(res))
7373
} else {
7474
Err(ErrorBadRequest("Not Authenticated"))
7575
}
7676
}
7777

7878
// function that will be called on new Application to configure routes for this module
79-
pub fn init(cfg: &mut web::ServiceConfig) {
80-
cfg.route("/viewer", web::get().to(viewer))
81-
.route("/viewer/create", web::post().to(create))
82-
.route("/viewer/authenticate", web::post().to(authenticate));
79+
pub fn init(cfg: &mut http::ServiceConfig) {
80+
cfg.route("/viewer", http::get().to(viewer))
81+
.route("/viewer/create", http::post().to(create))
82+
.route("/viewer/authenticate", http::post().to(authenticate));
8383
}

src/core/auth/viewer.rs

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@ use actix_web::dev::Payload;
44
use actix_web::dev::PayloadStream;
55

66
use crate::core::db::model::fields;
7+
use crate::core::http;
78
use crate::core::http::errors;
8-
use crate::core::http::web;
99
use crate::core::http::Apiv2Schema;
1010
use crate::core::http::FromRequest;
1111

@@ -21,7 +21,10 @@ impl FromRequest for Viewer {
2121
type Future = Ready<Result<Self, Self::Error>>;
2222
type Config = ();
2323

24-
fn from_request(req: &web::HttpRequest, _payload: &mut Payload<PayloadStream>) -> Self::Future {
24+
fn from_request(
25+
req: &http::HttpRequest,
26+
_payload: &mut Payload<PayloadStream>,
27+
) -> Self::Future {
2528
let ext = req.extensions();
2629
let viewer = ext.get::<Viewer>();
2730
if let Some(viewer) = viewer {

src/core/http/mod.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,10 @@ pub mod server;
33

44
pub use actix_web::guard;
55
pub use actix_web::FromRequest;
6+
pub use actix_web::Responder;
67

78
pub use paperclip::actix::api_v2_operation;
8-
pub use paperclip::actix::web;
9+
pub use paperclip::actix::web::*;
910
pub use paperclip::actix::Apiv2Schema;
1011

1112
pub use server::server;

src/core/http/server.rs

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,13 @@ use crate::core::settings::Settings;
1111
use super::api_v2_operation;
1212
use super::guard;
1313
use super::middlewares;
14-
use super::web;
1514

1615
#[api_v2_operation]
1716
async fn p404() -> Result<String, ()> {
1817
Ok("404".to_string())
1918
}
2019

21-
pub async fn server(settings: Settings, routes: fn(&mut web::ServiceConfig)) -> Result<()> {
20+
pub async fn server(settings: Settings, routes: fn(&mut super::ServiceConfig)) -> Result<()> {
2221
info!("Initializing server");
2322

2423
// this will enable us to keep application running during recompile: systemfd --no-pid -s http::5000 -- cargo watch -x run
@@ -39,10 +38,10 @@ pub async fn server(settings: Settings, routes: fn(&mut web::ServiceConfig)) ->
3938
.build()
4039
.default_service(
4140
// 404 for GET request
42-
web::resource("")
43-
.route(web::get().to(p404))
41+
super::resource("")
42+
.route(super::get().to(p404))
4443
// all requests that are not `GET`
45-
.route(web::Route::new().guard(guard::Not(guard::Get()))),
44+
.route(super::Route::new().guard(guard::Not(guard::Get()))),
4645
)
4746
});
4847

src/lib.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,20 +11,20 @@ pub mod user;
1111
use anyhow::Result;
1212
use env_logger::Env;
1313

14+
use crate::core::http;
1415
use crate::core::http::api_v2_operation;
15-
use crate::core::http::web;
1616

1717
#[api_v2_operation]
1818
async fn index() -> Result<String, ()> {
1919
Ok("Hello World".to_string())
2020
}
2121

22-
pub fn routes(cfg: &mut web::ServiceConfig) {
23-
let v1 = web::scope("/v1")
22+
pub fn routes(cfg: &mut http::ServiceConfig) {
23+
let v1 = http::scope("/v1")
2424
.configure(todo::init)
2525
.configure(core::auth::init);
2626

27-
cfg.route("/", web::get().to(index)).service(v1);
27+
cfg.route("/", http::get().to(index)).service(v1);
2828
}
2929

3030
#[actix_rt::main]

0 commit comments

Comments
 (0)