Skip to content

Commit 2610823

Browse files
committed
provide whitelist information on /Whitelist
1 parent 76ca0dc commit 2610823

File tree

2 files changed

+32
-0
lines changed

2 files changed

+32
-0
lines changed

src/main.rs

+5
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ mod logging;
2626
mod player;
2727
mod stickyban;
2828
mod ticket;
29+
mod whitelist;
2930

3031
#[rocket::async_trait]
3132
impl Fairing for CORS {
@@ -139,4 +140,8 @@ fn rocket() -> _ {
139140
format!("{}/Ticket", base_url),
140141
routes![ticket::get_tickets_by_round_id, ticket::get_tickets_by_user],
141142
)
143+
.mount(
144+
format!("{base_url}/Whitelist"),
145+
routes![whitelist::get_all_whitelistees],
146+
)
142147
}

src/whitelist.rs

+27
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
use rocket::serde::json::Json;
2+
use rocket_db_pools::Connection;
3+
use serde::Serialize;
4+
use sqlx::{prelude::FromRow, query_as};
5+
6+
use crate::Cmdb;
7+
8+
#[derive(Serialize, FromRow)]
9+
#[serde(rename_all = "camelCase")]
10+
pub struct WhitelistPlayer {
11+
id: i64,
12+
ckey: Option<String>,
13+
whitelist_status: Option<String>,
14+
}
15+
16+
#[get("/")]
17+
pub async fn get_all_whitelistees(mut db: Connection<Cmdb>) -> Json<Vec<WhitelistPlayer>> {
18+
match query_as(
19+
"SELECT id, ckey, whitelist_status FROM players WHERE (whitelist_status is not null AND LENGTH(whitelist_status) > 0)",
20+
)
21+
.fetch_all(&mut **db)
22+
.await
23+
{
24+
Ok(result) => Json(result),
25+
Err(_) => Json(Vec::new()),
26+
}
27+
}

0 commit comments

Comments
 (0)