Add ability to export account

This commit is contained in:
Ethan O'Brien
2024-05-27 15:31:07 -05:00
parent dae95f5aa3
commit 0b969eab97
4 changed files with 49 additions and 2 deletions

View File

@ -160,6 +160,7 @@ async fn request(req: HttpRequest, body: String) -> HttpResponse {
"/api/webui/userInfo" => router::webui::user(req),
"/webui/logout" => router::webui::logout(req),
"/api/webui/admin" => router::webui::admin(req),
"/api/webui/export" => router::webui::export(req),
_ => api_req(req, body)
}
}

View File

@ -600,3 +600,14 @@ pub fn set_server_time(time: i64, token: &str) -> JsonValue {
pub fn webui_logout(token: &str) {
DATABASE.lock_and_exec("DELETE FROM webui WHERE token=?1", params!(token));
}
pub fn export_user(token: &str) -> Option<JsonValue> {
let login_token = webui_login_token(token)?;
Some(object!{
userdata: json::stringify(get_acc(&login_token)),
userhome: json::stringify(get_acc_home(&login_token)),
missions: json::stringify(get_acc_missions(&login_token)),
sifcards: json::stringify(get_acc_sif(&login_token))
})
}

View File

@ -215,6 +215,21 @@ pub fn admin_post(req: HttpRequest, body: String) -> HttpResponse {
result: "OK"
};
HttpResponse::Ok()
.insert_header(ContentType::json())
.body(json::stringify(resp))
.insert_header(ContentType::json())
.body(json::stringify(resp))
}
pub fn export(req: HttpRequest) -> HttpResponse {
let token = get_login_token(&req);
if token.is_none() {
return error("Not logged in");
}
let resp = object!{
result: "OK",
data: userdata::export_user(&token.unwrap()).unwrap()
};
HttpResponse::Ok()
.insert_header(ContentType::json())
.body(json::stringify(resp))
}