fehler = "1"
rocket = "0.4"
-rocket_contrib = { version = "0.4", default-features=false, features=["tera_templates","helmet"] }
+rocket_contrib = { version = "0.4", default-features=false, features=["tera_templates","helmet","json"] }
#hmac = "0.7"
#base64 = "0.10"
#![feature(proc_macro_hygiene, decl_macro)]
-use rocket::{get,routes};
+use rocket::{get,post,routes};
+use rocket_contrib::json::Json;
//use rocket::{post};
use game::imports::*;
Ok(Template::render("loading",&c))
}
+#[derive(Deserialize)]
+struct SessionForm {
+ token : String,
+}
+#[post("/_/session", format="json", data="<form>")]
+fn session(form : Json<SessionForm>) -> Result<Template,RE> {
+ // make session in this game, log a message to other players
+ let _i = lookup_token(&form.token).ok_or(anyhow!("unknown token"))?;
+ let c = TestRenderContext { };
+ Ok(Template::render("blah",&c))
+}
+
#[derive(Serialize)]
enum Update {
TestCounter { value: usize },
.mount("/", routes![
index,
loading,
+ session,
resource,
updates,
])
static ref GLOBAL : Global = Default::default();
}
-fn lookup_token(s : &str) -> Option<InstanceAccessDetails> {
+pub fn lookup_token(s : &str) -> Option<InstanceAccessDetails> {
GLOBAL.tokens.read().unwrap().get(s).cloned()
}
pub use slotmap::dense::{DenseSlotMap};
pub use crate::global;
-pub use crate::global::InstanceAccess;
+pub use crate::global::{lookup_token,InstanceAccess,InstanceAccessDetails};
pub type E = anyhow::Error;
--- /dev/null
+<h2>BLAH!<h2>
console.log('DOLOAD');
var elem = document.getElementById('loading_token');
token = elem.dataset.token;
- xhr_post_then('/session',
+ xhr_post_then('/_/session',
JSON.stringify({ token : token }),
loaded);
}