|
|
|
@ -1,8 +1,8 @@
|
|
|
|
|
use hastic::services::user_service; |
|
|
|
|
use warp::filters::method::post; |
|
|
|
|
use warp::http::HeaderValue; |
|
|
|
|
use warp::hyper::Body; |
|
|
|
|
use warp::{body, Rejection, Reply}; |
|
|
|
|
use warp::hyper::{Body, StatusCode}; |
|
|
|
|
use warp::{body, options, Rejection, Reply}; |
|
|
|
|
use warp::{http::Response, Filter}; |
|
|
|
|
|
|
|
|
|
mod auth; |
|
|
|
@ -12,6 +12,11 @@ use serde::Serialize;
|
|
|
|
|
use parking_lot::RwLock; |
|
|
|
|
use std::sync::Arc; |
|
|
|
|
|
|
|
|
|
#[derive(Serialize)] |
|
|
|
|
struct Options { |
|
|
|
|
message: String, |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
pub struct API { |
|
|
|
|
user_service: Arc<RwLock<user_service::UserService>>, |
|
|
|
|
} |
|
|
|
@ -40,10 +45,17 @@ impl API {
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
pub async fn serve(&self) { |
|
|
|
|
let lg = warp::any().map(move || API::builder("not found")); |
|
|
|
|
let not_found = |
|
|
|
|
warp::any().map(|| warp::reply::with_status("Not found", StatusCode::NOT_FOUND)); |
|
|
|
|
let options = warp::any().and(options()).map(|| { |
|
|
|
|
API::json(&Options { |
|
|
|
|
message: "ok".to_owned(), |
|
|
|
|
}) |
|
|
|
|
}); |
|
|
|
|
let login = auth::get_route(self.user_service.clone()); |
|
|
|
|
|
|
|
|
|
println!("Start server on 8000 port"); |
|
|
|
|
warp::serve(login.or(lg)).run(([127, 0, 0, 1], 8000)).await; |
|
|
|
|
let routes = login.or(options).or(not_found); |
|
|
|
|
warp::serve(routes).run(([127, 0, 0, 1], 8000)).await; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|