diff --git a/src/main.rs b/src/main.rs index 61ba00e..56e264f 100644 --- a/src/main.rs +++ b/src/main.rs @@ -81,6 +81,12 @@ async fn mission(req: HttpRequest) -> HttpResponse { router::mission::mission(re #[get("/api/home")] async fn home(req: HttpRequest) -> HttpResponse { router::home::home(req) } +#[get("/api/home/preset")] +async fn preset_get(req: HttpRequest) -> HttpResponse { router::home::preset_get(req) } + +#[post("/api/home/preset")] +async fn preset(req: HttpRequest, body: String) -> HttpResponse { router::home::preset(req, body) } + #[post("/api/lottery/get_tutorial")] async fn lottery_tutorial(req: HttpRequest, body: String) -> HttpResponse { router::lottery::tutorial(req, body) } @@ -125,6 +131,8 @@ async fn main() -> std::io::Result<()> { println!("Request: {}", req.path()); srv.call(req) }) + .service(preset) + .service(preset_get) .service(gree_init) .service(debug_error) .service(login_bonus) diff --git a/src/router/home.rs b/src/router/home.rs index 17b4b84..3658da1 100644 --- a/src/router/home.rs +++ b/src/router/home.rs @@ -1,9 +1,46 @@ use json; use json::object; use crate::router::global; +use crate::encryption; use actix_web::{HttpResponse, HttpRequest}; use crate::router::userdata; +pub fn preset(req: HttpRequest, body: String) -> HttpResponse { + let body = json::parse(&encryption::decrypt_packet(&body).unwrap()).unwrap(); + let key = global::get_login(req.headers()); + let mut user = userdata::get_acc_home(&key); + + for (_i, data) in user["home"]["preset_setting"].members_mut().enumerate() { + if data["slot"].to_string() == body["slot"].to_string() { + *data = body.clone(); + } + } + userdata::save_acc_home(&key, user); + + let resp = object!{ + "code": 0, + "server_time": global::timestamp(), + "data": [] + }; + global::send(resp) +} + +pub fn preset_get(req: HttpRequest) -> HttpResponse { + let key = global::get_login(req.headers()); + let user = userdata::get_acc(&key); + + let resp = object!{ + "code": 0, + "server_time": global::timestamp(), + "data": { + "master_preset_background_ids": [1,2,3,4,5], + "master_preset_foreground_ids": [1,2,3], + "card_list": user["card_list"].clone() + } + }; + global::send(resp) +} + pub fn home(req: HttpRequest) -> HttpResponse { let key = global::get_login(req.headers()); let user = userdata::get_acc_home(&key);