Browse Source

upgrade to actix-web 3.0 (#5919)

Nikolay Kim 5 years ago
parent
commit
a0173fae00

+ 7 - 7
frameworks/Rust/actix/Cargo.toml

@@ -24,13 +24,13 @@ name = "actix-raw"
 path = "src/main_raw.rs"
 
 [dependencies]
-actix = { version="0.9.0", features=["http"] }
-actix-web = { version="2.0.0", default-features = false }
-actix-http = { version="1.0.1", default-features = false }
-actix-rt = "1.0.0"
+actix = { version="0.9.0" }
+actix-web = { version="3.0.0-beta.1", default-features = false }
+actix-http = { version="2.0.0-beta.2", default-features = false }
+actix-rt = "1.1.1"
 actix-codec = "0.2.0"
-actix-server = "1.0.0"
-actix-service = "1.0.1"
+actix-server = "1.0.3"
+actix-service = "1.0.5"
 snmalloc-rs = "0.2.6"
 askama = "0.8"
 markup = "0.4.1"
@@ -50,7 +50,7 @@ diesel = { version = "1.4.3", features = ["postgres"] }
 url = { version="1.7", features=["query_encoding"] }
 log = { version = "0.4", features = ["release_max_level_debug"] }
 v_htmlescape = "0.10"
-tokio = "=0.2.6"
+tokio = "0.2"
 tokio-postgres = { git="https://github.com/fafhrd91/rust-postgres.git" }
 
 [build-dependencies]

+ 17 - 4
frameworks/Rust/actix/src/main_diesel.rs

@@ -7,6 +7,7 @@ extern crate serde_derive;
 extern crate diesel;
 
 use actix::prelude::*;
+use actix_http::error::ErrorInternalServerError;
 use actix_web::{http, web, App, Error, HttpRequest, HttpResponse, HttpServer};
 use askama::Template;
 use bytes::BytesMut;
@@ -18,7 +19,10 @@ mod utils;
 use utils::Writer;
 
 async fn world_row(db: web::Data<Addr<db::DbExecutor>>) -> Result<HttpResponse, Error> {
-    let res = db.send(db::RandomWorld).await?;
+    let res = db
+        .send(db::RandomWorld)
+        .await
+        .map_err(|e| ErrorInternalServerError(e))?;
 
     match res {
         Ok(row) => {
@@ -41,7 +45,10 @@ async fn queries(
     let q = utils::get_query_param(req.query_string());
 
     // run sql queries
-    let res = db.send(db::RandomWorlds(q)).await?;
+    let res = db
+        .send(db::RandomWorlds(q))
+        .await
+        .map_err(|e| ErrorInternalServerError(e))?;
     if let Ok(worlds) = res {
         let mut body = BytesMut::with_capacity(35 * worlds.len());
         serde_json::to_writer(Writer(&mut body), &worlds).unwrap();
@@ -62,7 +69,10 @@ async fn updates(
     let q = utils::get_query_param(req.query_string());
 
     // update worlds
-    let res = db.send(db::UpdateWorld(q)).await?;
+    let res = db
+        .send(db::UpdateWorld(q))
+        .await
+        .map_err(|e| ErrorInternalServerError(e))?;
 
     if let Ok(worlds) = res {
         let mut body = BytesMut::with_capacity(35 * worlds.len());
@@ -83,7 +93,10 @@ struct FortuneTemplate<'a> {
 }
 
 async fn fortune(db: web::Data<Addr<db::DbExecutor>>) -> Result<HttpResponse, Error> {
-    let res = db.send(db::TellFortune).await?;
+    let res = db
+        .send(db::TellFortune)
+        .await
+        .map_err(|e| ErrorInternalServerError(e))?;
     match res {
         Ok(rows) => {
             let tmpl = FortuneTemplate { items: &rows };

+ 17 - 4
frameworks/Rust/actix/src/main_pg.rs

@@ -9,6 +9,7 @@ extern crate diesel;
 use std::io::Write;
 
 use actix::prelude::*;
+use actix_http::error::ErrorInternalServerError;
 use actix_http::{HttpService, KeepAlive};
 use actix_service::map_config;
 use actix_web::dev::{AppConfig, Body, Server};
@@ -23,7 +24,10 @@ use crate::db_pg::{PgConnection, RandomWorld, RandomWorlds, TellFortune, UpdateW
 use crate::utils::{FortunesYarteTemplate, Writer};
 
 async fn world_row(db: web::Data<Addr<PgConnection>>) -> Result<HttpResponse, Error> {
-    let res = db.send(RandomWorld).await?;
+    let res = db
+        .send(RandomWorld)
+        .await
+        .map_err(|e| ErrorInternalServerError(e))?;
     match res {
         Ok(body) => {
             let mut res = HttpResponse::with_body(StatusCode::OK, Body::Bytes(body));
@@ -45,7 +49,10 @@ async fn queries(
     let q = utils::get_query_param(req.query_string());
 
     // run sql queries
-    let res = db.send(RandomWorlds(q)).await?;
+    let res = db
+        .send(RandomWorlds(q))
+        .await
+        .map_err(|e| ErrorInternalServerError(e))?;
     if let Ok(worlds) = res {
         let mut body = BytesMut::with_capacity(35 * worlds.len());
         serde_json::to_writer(Writer(&mut body), &worlds).unwrap();
@@ -69,7 +76,10 @@ async fn updates(
     let q = utils::get_query_param(req.query_string());
 
     // update db
-    let res = db.send(UpdateWorld(q)).await?;
+    let res = db
+        .send(UpdateWorld(q))
+        .await
+        .map_err(|e| ErrorInternalServerError(e))?;
     if let Ok(worlds) = res {
         let mut body = BytesMut::with_capacity(35 * worlds.len());
         serde_json::to_writer(Writer(&mut body), &worlds).unwrap();
@@ -86,7 +96,10 @@ async fn updates(
 }
 
 async fn fortune(db: web::Data<Addr<PgConnection>>) -> Result<HttpResponse, Error> {
-    let res = db.send(TellFortune).await?;
+    let res = db
+        .send(TellFortune)
+        .await
+        .map_err(|e| ErrorInternalServerError(e))?;
 
     match res {
         Ok(fortunes) => {