Skip to content

Commit 76ca0dc

Browse files
committed
adds ability to get a users playtimes
1 parent d5da516 commit 76ca0dc

File tree

2 files changed

+31
-9
lines changed

2 files changed

+31
-9
lines changed

src/main.rs

+10-9
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,14 @@ extern crate rocket;
1919

2020
pub struct CORS;
2121

22+
mod admin;
23+
mod byond;
24+
mod connections;
25+
mod logging;
26+
mod player;
27+
mod stickyban;
28+
mod ticket;
29+
2230
#[rocket::async_trait]
2331
impl Fairing for CORS {
2432
fn info(&self) -> Info {
@@ -39,14 +47,6 @@ impl Fairing for CORS {
3947
}
4048
}
4149

42-
mod admin;
43-
mod byond;
44-
mod connections;
45-
mod logging;
46-
mod player;
47-
mod stickyban;
48-
mod ticket;
49-
5050
#[derive(Debug, Deserialize, Serialize, Clone)]
5151
struct TopicConfig {
5252
host: Option<String>,
@@ -104,7 +104,8 @@ fn rocket() -> _ {
104104
player::index,
105105
player::id,
106106
player::new_note,
107-
player::applied_notes
107+
player::applied_notes,
108+
player::get_playtime
108109
],
109110
)
110111
.mount(

src/player.rs

+21
Original file line numberDiff line numberDiff line change
@@ -300,6 +300,27 @@ pub async fn create_note(
300300
}
301301
}
302302

303+
#[derive(Serialize, FromRow)]
304+
#[serde(rename_all = "camelCase")]
305+
pub struct Playtime {
306+
id: i64,
307+
player_id: i64,
308+
role_id: String,
309+
total_minutes: i32,
310+
}
311+
312+
#[get("/<id>/Playtime")]
313+
pub async fn get_playtime(mut db: Connection<Cmdb>, id: i64) -> Json<Vec<Playtime>> {
314+
match query_as("SELECT * FROM player_playtime WHERE player_id = ?")
315+
.bind(id)
316+
.fetch_all(&mut **db)
317+
.await
318+
{
319+
Ok(some) => Json(some),
320+
Err(_) => return Json(Vec::new()),
321+
}
322+
}
323+
303324
pub async fn get_player_id(db: &mut MySqlConnection, ckey: &String) -> Option<i64> {
304325
let player_id: i64 = match query("SELECT id FROM players WHERE ckey = ?")
305326
.bind(ckey)

0 commit comments

Comments
 (0)