aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorKevin J Hoerr <kjhoerr@protonmail.com>2019-07-22 22:22:06 -0400
committerKevin J Hoerr <kjhoerr@protonmail.com>2019-07-22 22:22:06 -0400
commit87a703ae2295e418a7c853c8be6a576f2594241a (patch)
tree7d4c4e9014b51447f1c5c95bd158855327f84b2a /src
parent345926d52e533b269cdd2df3362acc1d5c1cc897 (diff)
downloadaugust-offensive-87a703ae2295e418a7c853c8be6a576f2594241a.tar.gz
august-offensive-87a703ae2295e418a7c853c8be6a576f2594241a.tar.bz2
august-offensive-87a703ae2295e418a7c853c8be6a576f2594241a.zip
Upgrade actix-web and other dependencies; Update version to 0.2.1
Diffstat (limited to 'src')
-rw-r--r--src/main.rs41
-rw-r--r--src/routes/mod.rs12
2 files changed, 24 insertions, 29 deletions
diff --git a/src/main.rs b/src/main.rs
index 0a63332..36f07bb 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -1,11 +1,9 @@
-// specify recurse depth for error_chain
-#![recursion_limit = "1024"]
-
-extern crate actix;
+extern crate actix_rt;
extern crate actix_web;
extern crate dotenv;
+#[macro_use]
+extern crate log;
extern crate env_logger;
-extern crate failure;
#[macro_use]
extern crate diesel;
extern crate serde;
@@ -15,13 +13,13 @@ extern crate serde_derive;
pub mod routes;
pub mod schema;
-use actix_web::{middleware, server, App};
+use actix_web::{middleware, web, App, HttpServer};
use diesel::pg::PgConnection;
use diesel::prelude::*;
use dotenv::dotenv;
-use failure::Error;
use routes::*;
use std::env;
+use std::io::Error;
fn main() {
if let Err(ref e) = run() {
@@ -36,23 +34,22 @@ fn run() -> Result<(), Error> {
let db_url = env::var("DATABASE_URL").expect("DATABASE_URL must be set");
let bind_address = env::var("BIND_ADDRESS").expect("BIND_ADDRESS must be set");
- env::set_var("RUST_LOG", "actix_web=info");
env_logger::init();
- let sys = actix::System::new("august-offensive");
+ let sys = actix_rt::System::new("august-offensive");
PgConnection::establish(&db_url).expect(&format!("Error connecting to {}", db_url));
- server::new(|| {
- App::new()
- .middleware(middleware::Logger::default())
- .prefix("/api")
- .handler("/callback", callback)
- .default_resource(|r| r.f(not_understood))
- }).bind(&bind_address)
- .unwrap()
- .start();
-
- println!("Started http server: {}", bind_address);
- let _ = sys.run();
- Ok(())
+ HttpServer::new(|| {
+ App::new().wrap(middleware::Logger::default()).service(
+ web::scope("/api")
+ .service(web::scope("/callback").default_service(web::route().to(callback)))
+ .default_service(web::route().to(not_understood)),
+ )
+ })
+ .bind(&bind_address)?
+ .start();
+
+ info!("Started http server: {}", bind_address);
+
+ sys.run()
}
diff --git a/src/routes/mod.rs b/src/routes/mod.rs
index 16fcce9..29ab58f 100644
--- a/src/routes/mod.rs
+++ b/src/routes/mod.rs
@@ -1,5 +1,5 @@
-use actix_web::{HttpRequest, Json, Result};
-use std::ops::Deref;
+use actix_web::{web::Json, web::Query, HttpRequest, Result};
+use std::collections::HashMap;
pub mod messages;
use messages::*;
@@ -7,7 +7,7 @@ use messages::*;
type JsonMessage<U> = Result<Json<OutgoingMsg<U>>>;
// Sends a default response message when requested an undefined resource.
-pub fn not_understood(req: &HttpRequest) -> JsonMessage<NotUnderstood> {
+pub fn not_understood(req: HttpRequest) -> JsonMessage<NotUnderstood> {
let message = NotUnderstood {
path: destruct_path(req.path()),
};
@@ -16,16 +16,14 @@ pub fn not_understood(req: &HttpRequest) -> JsonMessage<NotUnderstood> {
}
// Sends Callback message with information from HttpRequest.
-pub fn callback(req: &HttpRequest) -> JsonMessage<Callback> {
+pub fn callback(req: HttpRequest, query: Query<HashMap<String, String>>) -> JsonMessage<Callback> {
let path = req.path();
let method = req.method().as_str();
- let query_ref = req.query();
- let request = query_ref.deref().clone();
let callback = Callback {
path: destruct_path(path),
request: String::from(method),
- content: request,
+ content: query.into_inner(),
};
Ok(Json(callback.as_outgoing()))