Implement ability to add login bonus things in webui
This commit is contained in:
@ -167,10 +167,13 @@ pub fn give_points(master_item_id: i64, amount: i64, user: &mut JsonValue) -> bo
|
||||
false
|
||||
}
|
||||
|
||||
pub fn start_login_bonus(id: i64, bonus: &mut JsonValue) {
|
||||
pub fn start_login_bonus(id: i64, bonus: &mut JsonValue) -> bool {
|
||||
if crate::router::login::get_login_bonus_info(id).is_empty() {
|
||||
return false;
|
||||
}
|
||||
for (_j, dataa) in bonus["bonus_list"].members().enumerate() {
|
||||
if dataa["master_login_bonus_id"].as_i64().unwrap() == id {
|
||||
return;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
bonus["bonus_list"].push(object!{
|
||||
@ -178,6 +181,7 @@ pub fn start_login_bonus(id: i64, bonus: &mut JsonValue) {
|
||||
day_counts: [],
|
||||
event_bonus_list: []
|
||||
}).unwrap();
|
||||
true
|
||||
}
|
||||
|
||||
pub fn give_primogems(amount: i64, user: &mut JsonValue) -> bool {
|
||||
|
@ -49,7 +49,7 @@ lazy_static! {
|
||||
};
|
||||
}
|
||||
|
||||
fn get_login_bonus_info(id: i64) -> JsonValue {
|
||||
pub fn get_login_bonus_info(id: i64) -> JsonValue {
|
||||
LOTTERY_INFO[id.to_string()].clone()
|
||||
}
|
||||
|
||||
|
@ -478,7 +478,7 @@ pub fn webui_import_user(user: JsonValue) -> Result<JsonValue, String> {
|
||||
})
|
||||
}
|
||||
|
||||
pub fn webui_get_user(token: &str) -> Option<JsonValue> {
|
||||
fn webui_login_token(token: &str) -> Option<String> {
|
||||
let uid = lock_and_select("SELECT user_id FROM webui WHERE token=?1", params!(token)).unwrap_or(String::new());
|
||||
if uid == String::new() || token == "" {
|
||||
return None;
|
||||
@ -494,17 +494,46 @@ pub fn webui_get_user(token: &str) -> Option<JsonValue> {
|
||||
lock_and_exec("DELETE FROM webui WHERE user_id=?1", params!(uid));
|
||||
return None;
|
||||
}
|
||||
|
||||
let login_token = lock_and_select("SELECT token FROM tokens WHERE user_id=?1", params!(uid)).unwrap_or(String::new());
|
||||
if login_token == String::new() {
|
||||
return None;
|
||||
}
|
||||
Some(login_token)
|
||||
}
|
||||
|
||||
pub fn webui_get_user(token: &str) -> Option<JsonValue> {
|
||||
let login_token = webui_login_token(token)?;
|
||||
|
||||
return Some(object!{
|
||||
userdata: get_acc(&login_token),
|
||||
loginbonus: get_acc_loginbonus(&login_token)
|
||||
});
|
||||
}
|
||||
|
||||
pub fn webui_start_loginbonus(bonus_id: i64, token: &str) -> JsonValue {
|
||||
let login_token = webui_login_token(token);
|
||||
if login_token.is_none() {
|
||||
return object!{
|
||||
result: "ERR",
|
||||
message: "Failed to validate token"
|
||||
};
|
||||
}
|
||||
let login_token = login_token.unwrap();
|
||||
let mut bonuses = get_acc_loginbonus(&login_token);
|
||||
if !global::start_login_bonus(bonus_id, &mut bonuses) {
|
||||
return object!{
|
||||
result: "ERR",
|
||||
message: "Login bonus ID is either already going or does not exist"
|
||||
};
|
||||
}
|
||||
save_acc_loginbonus(&login_token, bonuses);
|
||||
|
||||
return object!{
|
||||
result: "OK",
|
||||
id: bonus_id
|
||||
};
|
||||
}
|
||||
|
||||
pub fn webui_logout(token: &str) {
|
||||
lock_and_exec("DELETE FROM webui WHERE token=?1", params!(token));
|
||||
}
|
||||
|
@ -83,6 +83,19 @@ pub fn user(req: HttpRequest) -> HttpResponse {
|
||||
.body(json::stringify(resp))
|
||||
}
|
||||
|
||||
pub fn start_loginbonus(req: HttpRequest, body: String) -> HttpResponse {
|
||||
let token = get_login_token(&req);
|
||||
if token.is_none() {
|
||||
return error("Not logged in");
|
||||
}
|
||||
let body = json::parse(&body).unwrap();
|
||||
let resp = userdata::webui_start_loginbonus(body["bonus_id"].as_i64().unwrap(), &token.unwrap());
|
||||
|
||||
HttpResponse::Ok()
|
||||
.insert_header(ContentType::json())
|
||||
.body(json::stringify(resp))
|
||||
}
|
||||
|
||||
pub fn logout(req: HttpRequest) -> HttpResponse {
|
||||
let token = get_login_token(&req);
|
||||
if !token.is_none() {
|
||||
|
Reference in New Issue
Block a user