Add endpoint to set server time

This commit is contained in:
Ethan O'Brien
2024-05-04 18:11:20 -05:00
parent 05aecd02c6
commit 42bdc28d0f
24 changed files with 169 additions and 106 deletions

View File

@@ -1,7 +1,8 @@
use json::{array, object, JsonValue};
use actix_web::{
HttpResponse,
http::header::{HeaderValue, HeaderMap}
http::header::{HeaderValue, HeaderMap},
HttpRequest
};
use std::time::{SystemTime, UNIX_EPOCH};
use base64::{Engine as _, engine::general_purpose};
@@ -79,9 +80,27 @@ pub fn timestamp_since_midnight() -> u64 {
rv
}
pub fn send(mut data: JsonValue) -> HttpResponse {
//println!("{}", json::stringify(data.clone()));
fn set_time(data: &mut JsonValue, req: HttpRequest) {
data["server_time"] = 1711741114.into();
let blank_header = HeaderValue::from_static("");
let uid = headers.get("aoharu-user-id").unwrap_or(&blank_header).to_str().unwrap_or("").parse<i64>().unwrap_or(0);
if uid == 0 {
return;
}
let server_data = userdata::get_server_data(get_login_token(uid));
if server_data["timestamp"].as_i64().is_ok() {
if server_data["timestamp"].as_i64().unwrap() == 0 {
data["server_time"] = global::timestamp().into();
return;
}
data["server_time"] = server_data["timestamp"].clone();
}
}
pub fn send(mut data: JsonValue, req: HttpRequest) -> HttpResponse {
//println!("{}", json::stringify(data.clone()));
set_time(&data, req)
let encrypted = encryption::encrypt_packet(&json::stringify(data)).unwrap();
let resp = encrypted.into_bytes();
@@ -89,8 +108,8 @@ pub fn send(mut data: JsonValue) -> HttpResponse {
HttpResponse::Ok().body(resp)
}
pub fn error_resp() -> HttpResponse {
send(object!{})
pub fn error_resp(req: HttpRequest) -> HttpResponse {
send(object!{}, req)
}
pub fn start_login_bonus(id: i64, bonus: &mut JsonValue) -> bool {