Skip to content

Commit 7eaa093

Browse files
committed
new players
1 parent 6534964 commit 7eaa093

File tree

2 files changed

+30
-1
lines changed

2 files changed

+30
-1
lines changed

src/main.rs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ mod admin;
2323
mod byond;
2424
mod connections;
2525
mod logging;
26+
mod new_players;
2627
mod player;
2728
mod stickyban;
2829
mod ticket;
@@ -99,7 +100,7 @@ fn rocket() -> _ {
99100
player::new_note,
100101
player::applied_notes,
101102
player::get_playtime,
102-
player::get_recent_playtime
103+
player::get_recent_playtime,
103104
],
104105
)
105106
.mount(
@@ -137,4 +138,8 @@ fn rocket() -> _ {
137138
format!("{base_url}/Whitelist"),
138139
routes![whitelist::get_all_whitelistees],
139140
)
141+
.mount(
142+
format!{"{}/NewPlayers", base_url},
143+
routes![new_players::get_new_players],
144+
)
140145
}

src/new_players.rs

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
use rocket::serde::json::Json;
2+
use rocket_db_pools::Connection;
3+
use sqlx::query_as;
4+
5+
use crate::{player::Player, Cmdb};
6+
7+
#[get("/<minutes>")]
8+
pub async fn get_new_players(mut db: Connection<Cmdb>, minutes: i64) -> Json<Vec<Player>> {
9+
let time_ago = format!(
10+
"{}",
11+
(chrono::Utc::now() - chrono::Duration::minutes(minutes)).format("%Y-%m-%d %H:%M:%S")
12+
);
13+
14+
match query_as("SELECT * FROM players WHERE first_join_date <> \"UNKNOWN\" AND first_join_date > ? ORDER BY first_join_date ASC")
15+
.bind(time_ago)
16+
.fetch_all(&mut **db)
17+
.await
18+
{
19+
Ok(result) => Json(result),
20+
Err(_) => {
21+
Json(Vec::new())
22+
}
23+
}
24+
}

0 commit comments

Comments
 (0)