|
|
@@ -6,54 +6,66 @@
|
|
|
extern crate rocket_cors;
|
|
|
|
|
|
use std::fs::File;
|
|
|
+use std::path::{Path, PathBuf};
|
|
|
use std::io::prelude::*;
|
|
|
use std::sync::Mutex;
|
|
|
use rocket::http::Method;
|
|
|
use rocket_cors::{AllowedOrigins, AllowedHeaders};
|
|
|
+use rocket::response::NamedFile;
|
|
|
|
|
|
lazy_static! {
|
|
|
- static ref OBJECT: Mutex<String> = Mutex::new(String::from("{default}"));
|
|
|
+ static ref OBJECT: Mutex<String> = Mutex::new(String::from("{}"));
|
|
|
}
|
|
|
|
|
|
|
|
|
#[get("/")]
|
|
|
fn get() -> String {
|
|
|
- format!("{:?}", *OBJECT.lock().unwrap())
|
|
|
+ let result: &String = &*OBJECT.lock().unwrap();
|
|
|
+ result.clone()
|
|
|
}
|
|
|
|
|
|
-#[get("/")]
|
|
|
-fn test() -> File {
|
|
|
- let f = std::fs::File::open("index.html").unwrap();
|
|
|
- f
|
|
|
-}
|
|
|
+
|
|
|
|
|
|
#[get("/<obj>")]
|
|
|
-fn set(obj: String) {
|
|
|
- println!("{:?}", obj);
|
|
|
+fn set(obj: String) -> String {
|
|
|
+ let parsed = obj;
|
|
|
+ println!("GOT {:?}", parsed);
|
|
|
let mut data = OBJECT.lock().unwrap();
|
|
|
- *data = obj;
|
|
|
+ *data = parsed;
|
|
|
+ String::from("ok")
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+#[get("/<file..>")]
|
|
|
+fn static_content(file: PathBuf) -> NamedFile {
|
|
|
+ let f = NamedFile::open(Path::new("static/").join(file));
|
|
|
+ match f {
|
|
|
+ Ok(result) => result,
|
|
|
+ Err(_e) => NamedFile::open("static/err.html").unwrap()
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
fn main() {
|
|
|
|
|
|
- let (allowed_origins, failed_origins) = AllowedOrigins::some(&["https://www.acme.com"]);
|
|
|
- assert!(failed_origins.is_empty());
|
|
|
+ // let (allowed_origins, failed_origins) = AllowedOrigins::some(&["https://www.acme.com"]);
|
|
|
+ // assert!(failed_origins.is_empty());
|
|
|
|
|
|
- // You can also deserialize this
|
|
|
- let options = rocket_cors::Cors {
|
|
|
- allowed_origins: allowed_origins,
|
|
|
- allowed_methods: vec![Method::Get].into_iter().map(From::from).collect(),
|
|
|
- allowed_headers: AllowedHeaders::some(&["Authorization", "Accept"]),
|
|
|
- allow_credentials: true,
|
|
|
- ..Default::default()
|
|
|
- };
|
|
|
+ // // You can also deserialize this
|
|
|
+ // let options = rocket_cors::Cors {
|
|
|
+ // allowed_origins: allowed_origins,
|
|
|
+ // allowed_methods: vec![Method::Get].into_iter().map(From::from).collect(),
|
|
|
+ // allowed_headers: AllowedHeaders::some(&["Authorization", "Accept"]),
|
|
|
+ // allow_credentials: true,
|
|
|
+ // ..Default::default()
|
|
|
+ // };
|
|
|
|
|
|
- let default = rocket_cors::Cors::default();
|
|
|
+ // let default = rocket_cors::Cors::default();
|
|
|
|
|
|
rocket::ignite()
|
|
|
.mount("/set", routes![set])
|
|
|
.mount("/get", routes![get])
|
|
|
- .mount("/test", routes![test])
|
|
|
- .attach(default)
|
|
|
+ // .mount("/test", routes![test])
|
|
|
+ .mount("/static", routes![static_content])
|
|
|
+ // .attach(default)
|
|
|
.launch();
|
|
|
}
|