diff --git a/Cargo.toml b/Cargo.toml index 39ecbe8..821244d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -26,3 +26,5 @@ mime = "0.3.17" sha2 = "0.10.8" include-flate-codegen = "0.3.0" libflate = "2.1.0" +serde_json = "1.0.120" +serde = { version = "1.0.204", features = ["derive"] } diff --git a/src/router/event.rs b/src/router/event.rs index 469f725..795a109 100644 --- a/src/router/event.rs +++ b/src/router/event.rs @@ -102,14 +102,16 @@ pub fn star_event(req: HttpRequest, body: String) -> Option { pub fn change_target_music(req: HttpRequest, body: String) -> Option { let key = global::get_login(req.headers(), &body); - let body = json::parse(&encryption::decrypt_packet(&body).unwrap()).unwrap(); - let mut event = get_event_data(&key, body["master_event_id"].as_i64().unwrap()); + let body = &encryption::decrypt_packet(&body).unwrap(); + let body: StarEventChangeTargetMusic = serde_json::from_str(body).unwrap(); + + let mut event = get_event_data(&key, body.master_event_id as i64); event["star_event"]["music_change_count"] = (event["star_event"]["music_change_count"].as_i32().unwrap() + 1).into(); - switch_music(&mut event, body["position"].as_i32().unwrap()); + switch_music(&mut event, body.position as i32); - save_event_data(&key, body["master_event_id"].as_i64().unwrap(), event.clone()); + save_event_data(&key, body.master_event_id as i64, event.clone()); Some(event["star_event"].clone()) } @@ -137,3 +139,13 @@ pub fn ranking(_req: HttpRequest, _body: String) -> Option { ranking_detail_list: [] }) } + +// Start request structs + +use serde::{Deserialize, Serialize}; + +#[derive(Serialize, Deserialize)] +struct StarEventChangeTargetMusic { + master_event_id: usize, + position: usize +}