2022-11-09 14:40:53 -05:00
|
|
|
use wasm_bindgen::prelude::*;
|
|
|
|
use lox::OPENINV_LENGTH;
|
2022-11-10 11:04:20 -05:00
|
|
|
use lox::proto::open_invite;
|
2022-11-09 14:40:53 -05:00
|
|
|
use serde_json;
|
2022-11-15 21:57:49 -05:00
|
|
|
use std::array::TryFromSliceError;
|
|
|
|
use std::panic;
|
2022-11-09 14:40:53 -05:00
|
|
|
|
|
|
|
#[wasm_bindgen]
|
|
|
|
extern {
|
|
|
|
#[wasm_bindgen(js_namespace = console)]
|
|
|
|
pub fn log(s: &str);
|
|
|
|
}
|
|
|
|
|
|
|
|
#[wasm_bindgen]
|
2022-11-15 21:57:49 -05:00
|
|
|
pub fn set_panic_hook() {
|
|
|
|
panic::set_hook(Box::new(console_error_panic_hook::hook));
|
2022-11-09 14:40:53 -05:00
|
|
|
}
|
|
|
|
|
2022-11-15 21:57:49 -05:00
|
|
|
#[wasm_bindgen]
|
|
|
|
pub fn open_invite(invite: &[u8]) {
|
|
|
|
log(&format!("Using invite: {:?}", invite));
|
|
|
|
match validate(invite) {
|
|
|
|
Ok(token) => {
|
|
|
|
let (request, _state) = open_invite::request(&token);
|
|
|
|
let serialized_request = serde_json::to_string(&request).unwrap();
|
|
|
|
log(&format!("Formatted open invite request: {}", serialized_request));
|
|
|
|
},
|
|
|
|
Err(e) => {
|
|
|
|
log(&format!("{:?}", e));
|
|
|
|
},
|
|
|
|
}
|
|
|
|
}
|
2022-11-09 14:40:53 -05:00
|
|
|
|
2022-11-15 21:57:49 -05:00
|
|
|
fn validate(invite: &[u8]) -> Result<[u8; OPENINV_LENGTH], TryFromSliceError> {
|
|
|
|
invite.try_into()
|
2022-11-09 14:40:53 -05:00
|
|
|
}
|