diff --git a/src/router/chat.rs b/src/router/chat.rs index ea4c472..4e2feb8 100644 --- a/src/router/chat.rs +++ b/src/router/chat.rs @@ -2,13 +2,12 @@ use json; use json::object; use crate::router::global; //use crate::encryption; -use actix_web::{HttpResponse, HttpRequest, http::header::HeaderValue}; +use actix_web::{HttpResponse, HttpRequest}; use crate::router::userdata; pub fn home(req: HttpRequest, _body: String) -> HttpResponse { - let blank_header = HeaderValue::from_static(""); - let key = req.headers().get("a6573cbe").unwrap_or(&blank_header).to_str().unwrap_or(""); - let user = userdata::get_acc(key); + let key = global::get_login(req.headers()); + let user = userdata::get_acc(&key); let id = user["user"]["favorite_master_card_id"].as_i64().unwrap() / 10000; diff --git a/src/router/friend.rs b/src/router/friend.rs index 419b190..ed9de48 100644 --- a/src/router/friend.rs +++ b/src/router/friend.rs @@ -7,9 +7,8 @@ use actix_web::{HttpResponse, HttpRequest}; pub fn friend(_req: HttpRequest, _body: String) -> HttpResponse { /*let blank_header = HeaderValue::from_static(""); - let key = req.headers().get("a6573cbe").unwrap_or(&blank_header).to_str().unwrap_or(""); - let uid = req.headers().get("aoharu-user-id").unwrap_or(&blank_header).to_str().unwrap_or(""); - let user = userdata::get_acc(key, uid);*/ + let key = global::get_login(req.headers()); + let user = userdata::get_acc(&key, uid);*/ let resp = object!{ "code": 0, diff --git a/src/router/global.rs b/src/router/global.rs index 2d90001..7258c0d 100644 --- a/src/router/global.rs +++ b/src/router/global.rs @@ -9,6 +9,12 @@ use std::time::{SystemTime, UNIX_EPOCH}; pub const ASSET_VERSION: &str = "13177023d4b7ad41ff52af4cefba5c55"; pub const ASSET_HASH: &str = "9fbfeda43a5cbf744ef23c06c22170aa"; +pub fn get_login(headers: &HeaderMap) -> String { + let blank_header = HeaderValue::from_static(""); + let key = headers.get("f19c72ba").unwrap_or(&blank_header).to_str().unwrap_or(""); + key.to_string() +} + pub fn timestamp() -> u64 { let now = SystemTime::now(); diff --git a/src/router/home.rs b/src/router/home.rs index 69de1d4..17b4b84 100644 --- a/src/router/home.rs +++ b/src/router/home.rs @@ -1,13 +1,12 @@ use json; use json::object; use crate::router::global; -use actix_web::{HttpResponse, HttpRequest, http::header::HeaderValue}; +use actix_web::{HttpResponse, HttpRequest}; use crate::router::userdata; pub fn home(req: HttpRequest) -> HttpResponse { - let blank_header = HeaderValue::from_static(""); - let key = req.headers().get("a6573cbe").unwrap_or(&blank_header).to_str().unwrap_or(""); - let user = userdata::get_acc_home(key); + let key = global::get_login(req.headers()); + let user = userdata::get_acc_home(&key); let resp = object!{ "code": 0, diff --git a/src/router/live.rs b/src/router/live.rs index a624594..7451d4a 100644 --- a/src/router/live.rs +++ b/src/router/live.rs @@ -2,7 +2,7 @@ use json; use json::object; use crate::router::global; use crate::encryption; -use actix_web::{HttpResponse, HttpRequest, http::header::HeaderValue}; +use actix_web::{HttpResponse, HttpRequest}; use crate::router::userdata; pub fn retire(_req: HttpRequest, _body: String) -> HttpResponse { @@ -40,10 +40,9 @@ pub fn start(_req: HttpRequest, _body: String) -> HttpResponse { pub fn end(req: HttpRequest, body: String) -> HttpResponse { let body = json::parse(&encryption::decrypt_packet(&body).unwrap()).unwrap(); - let blank_header = HeaderValue::from_static(""); - let key = req.headers().get("a6573cbe").unwrap_or(&blank_header).to_str().unwrap_or(""); - let user2 = userdata::get_acc_home(key); - let mut user = userdata::get_acc(key); + let key = global::get_login(req.headers()); + let user2 = userdata::get_acc_home(&key); + let mut user = userdata::get_acc(&key); user["stamina"]["stamina"] = (user["stamina"]["stamina"].as_i32().unwrap() - body["use_lp"].as_i32().unwrap()).into(); if user["stamina"]["stamina"].as_i32().unwrap() < 0 { @@ -51,7 +50,7 @@ pub fn end(req: HttpRequest, body: String) -> HttpResponse { } user["stamina"]["last_updated_time"] = global::timestamp().into(); - userdata::save_acc(key, user.clone()); + userdata::save_acc(&key, user.clone()); let resp = object!{ "code": 0, diff --git a/src/router/login.rs b/src/router/login.rs index 6ee8bf5..9733af0 100644 --- a/src/router/login.rs +++ b/src/router/login.rs @@ -2,18 +2,17 @@ use json; use json::object; use crate::router::global; //use crate::encryption; -use actix_web::{HttpResponse, HttpRequest, http::header::HeaderValue}; +use actix_web::{HttpResponse, HttpRequest}; use crate::router::userdata; //First time login handler pub fn dummy(req: HttpRequest, _body: String) -> HttpResponse { //let body = json::parse(&encryption::decrypt_packet(&body).unwrap()).unwrap(); - let blank_header = HeaderValue::from_static(""); - let key = req.headers().get("a6573cbe").unwrap_or(&blank_header).to_str().unwrap_or(""); - let mut user = userdata::get_acc(key); + let key = global::get_login(req.headers()); + let mut user = userdata::get_acc(&key); user["user"]["last_login_time"] = global::timestamp().into(); - userdata::save_acc(key, user.clone()); + userdata::save_acc(&key, user.clone()); println!("Signin from uid: {}", user["user"]["id"].clone()); let resp = object!{ @@ -28,9 +27,8 @@ pub fn dummy(req: HttpRequest, _body: String) -> HttpResponse { pub fn bonus(req: HttpRequest, _body: String) -> HttpResponse { //let body = json::parse(&encryption::decrypt_packet(&body).unwrap()).unwrap(); - let blank_header = HeaderValue::from_static(""); - let key = req.headers().get("a6573cbe").unwrap_or(&blank_header).to_str().unwrap_or(""); - let user = userdata::get_acc_home(key); + let key = global::get_login(req.headers()); + let user = userdata::get_acc_home(&key); let resp = object!{ "code": 0, diff --git a/src/router/lottery/mod.rs b/src/router/lottery/mod.rs index 8e20ace..b24c6d7 100644 --- a/src/router/lottery/mod.rs +++ b/src/router/lottery/mod.rs @@ -2,7 +2,7 @@ use json; use json::{array, object, JsonValue}; use crate::router::global; use crate::encryption; -use actix_web::{HttpResponse, HttpRequest, http::header::HeaderValue}; +use actix_web::{HttpResponse, HttpRequest}; use crate::router::userdata; use lazy_static::lazy_static; @@ -88,10 +88,9 @@ fn get_random_cards(_count: i32) -> JsonValue { pub fn lottery(req: HttpRequest, body: String) -> HttpResponse { let body = json::parse(&encryption::decrypt_packet(&body).unwrap()).unwrap(); println!("lottery: {}", body); - let blank_header = HeaderValue::from_static(""); - let key = req.headers().get("a6573cbe").unwrap_or(&blank_header).to_str().unwrap_or(""); - let mut user = userdata::get_acc(key); - let user2 = userdata::get_acc(key); + let key = global::get_login(req.headers()); + let mut user = userdata::get_acc(&key); + let user2 = userdata::get_acc(&key); let mut cardstogive = get_random_cards(9); @@ -128,7 +127,7 @@ pub fn lottery(req: HttpRequest, body: String) -> HttpResponse { new_cards.push(to_push).unwrap(); } - userdata::save_acc(key, user.clone()); + userdata::save_acc(&key, user.clone()); let mut lottery_list = array![]; for (_i, data) in cardstogive.members().enumerate() { diff --git a/src/router/mission.rs b/src/router/mission.rs index d7b28a6..34db0d6 100644 --- a/src/router/mission.rs +++ b/src/router/mission.rs @@ -1,13 +1,12 @@ use json; use json::object; use crate::router::global; -use actix_web::{HttpResponse, HttpRequest, http::header::HeaderValue}; +use actix_web::{HttpResponse, HttpRequest}; use crate::router::userdata; pub fn mission(req: HttpRequest) -> HttpResponse { - let blank_header = HeaderValue::from_static(""); - let key = req.headers().get("a6573cbe").unwrap_or(&blank_header).to_str().unwrap_or(""); - let user = userdata::get_acc(key); + let key = global::get_login(req.headers()); + let user = userdata::get_acc(&key); let resp = object!{ "code": 0, diff --git a/src/router/tutorial.rs b/src/router/tutorial.rs index f2e39a0..572b2d6 100644 --- a/src/router/tutorial.rs +++ b/src/router/tutorial.rs @@ -2,18 +2,17 @@ use json; use json::object; use crate::router::global; use crate::encryption; -use actix_web::{HttpResponse, HttpRequest, http::header::HeaderValue}; +use actix_web::{HttpResponse, HttpRequest}; use crate::router::userdata; pub fn tutorial(req: HttpRequest, body: String) -> HttpResponse { let body = json::parse(&encryption::decrypt_packet(&body).unwrap()).unwrap(); - let blank_header = HeaderValue::from_static(""); - let key = req.headers().get("a6573cbe").unwrap_or(&blank_header).to_str().unwrap_or(""); - let mut user = userdata::get_acc(key); + let key = global::get_login(req.headers()); + let mut user = userdata::get_acc(&key); user["tutorial_step"] = body["step"].clone(); - userdata::save_acc(key, user); + userdata::save_acc(&key, user); let resp = object!{ "code": 0, diff --git a/src/router/user.rs b/src/router/user.rs index 7155ff7..6a9f324 100644 --- a/src/router/user.rs +++ b/src/router/user.rs @@ -2,15 +2,14 @@ use json; use json::{array, object, JsonValue}; use crate::router::global; use crate::encryption; -use actix_web::{HttpResponse, HttpRequest, http::header::HeaderValue}; +use actix_web::{HttpResponse, HttpRequest}; use crate::router::userdata; pub fn deck(req: HttpRequest, body: String) -> HttpResponse { let body = json::parse(&encryption::decrypt_packet(&body).unwrap()).unwrap(); - let blank_header = HeaderValue::from_static(""); - let key = req.headers().get("a6573cbe").unwrap_or(&blank_header).to_str().unwrap_or(""); - let mut user = userdata::get_acc(key); + let key = global::get_login(req.headers()); + let mut user = userdata::get_acc(&key); for (i, data) in user["deck_list"].members().enumerate() { if data["slot"].to_string() == body["slot"].to_string() { @@ -18,7 +17,7 @@ pub fn deck(req: HttpRequest, body: String) -> HttpResponse { break; } } - userdata::save_acc(key, user.clone()); + userdata::save_acc(&key, user.clone()); let resp = object!{ "code": 0, @@ -36,10 +35,9 @@ pub fn deck(req: HttpRequest, body: String) -> HttpResponse { } pub fn user(req: HttpRequest) -> HttpResponse { - let blank_header = HeaderValue::from_static(""); - let key = req.headers().get("a6573cbe").unwrap_or(&blank_header).to_str().unwrap_or(""); - let user = userdata::get_acc(key); + let key = global::get_login(req.headers()); + let user = userdata::get_acc(&key); let resp = object!{ "code": 0, @@ -51,16 +49,15 @@ pub fn user(req: HttpRequest) -> HttpResponse { pub fn user_post(req: HttpRequest, body: String) -> HttpResponse { let body = json::parse(&encryption::decrypt_packet(&body).unwrap()).unwrap(); - let blank_header = HeaderValue::from_static(""); - let key = req.headers().get("a6573cbe").unwrap_or(&blank_header).to_str().unwrap_or(""); - let mut user = userdata::get_acc(key); - let user_2 = userdata::get_acc_home(key); + let key = global::get_login(req.headers()); + let mut user = userdata::get_acc(&key); + let user_2 = userdata::get_acc_home(&key); user["user"]["name"] = body["name"].clone(); user["user"]["friend_request_disabled"] = body["friend_request_disabled"].clone(); - userdata::save_acc(key, user.clone()); + userdata::save_acc(&key, user.clone()); let resp = object!{ "code": 0, @@ -75,10 +72,9 @@ pub fn user_post(req: HttpRequest, body: String) -> HttpResponse { pub fn initialize(req: HttpRequest, body: String) -> HttpResponse { let body = json::parse(&encryption::decrypt_packet(&body).unwrap()).unwrap(); - let blank_header = HeaderValue::from_static(""); - let key = req.headers().get("a6573cbe").unwrap_or(&blank_header).to_str().unwrap_or(""); - let mut user = userdata::get_acc(key); + let key = global::get_login(req.headers()); + let mut user = userdata::get_acc(&key); let ur = user["card_list"][user["card_list"].len() - 1]["id"].clone(); let id = ur.as_i32().unwrap(); //todo @@ -121,7 +117,7 @@ pub fn initialize(req: HttpRequest, body: String) -> HttpResponse { //todo - should the chosen character be in the team twice? user["deck_list"][0]["main_card_ids"][4] = ur; - userdata::save_acc(key, user.clone()); + userdata::save_acc(&key, user.clone()); let resp = object!{ "code": 0, diff --git a/src/router/userdata/mod.rs b/src/router/userdata/mod.rs index acfe784..388585e 100644 --- a/src/router/userdata/mod.rs +++ b/src/router/userdata/mod.rs @@ -107,21 +107,17 @@ fn create_acc(conn: &Connection, uid: i64, login: &str) { create_token_store(conn); let mut tokens = get_tokens(conn); - let parts: Vec<&str> = login.split('-').collect(); - let token = parts[1..parts.len() - 1].join("-"); - tokens[0][token] = uid.into(); + tokens[0][login] = uid.into(); store_data(conn, "tokens", tokens); } fn get_uid(conn: &Connection, uid: &str) -> i64 { create_token_store(conn); - let parts: Vec<&str> = uid.split('-').collect(); - let token = parts[1..parts.len() - 1].join("-"); let tokens = get_tokens(conn); - if tokens[0][token.clone()].is_null() { + if tokens[0][uid].is_null() { return 0; } - return tokens[0][token].as_i64().unwrap(); + return tokens[0][uid].as_i64().unwrap(); } fn get_data(a6573cbe: &str) -> JsonValue {