error logging

This commit is contained in:
Stachelbeere1248 2024-07-03 00:03:42 +02:00
parent e13af168bf
commit 02727edbf8
Signed by: Stachelbeere1248
SSH key fingerprint: SHA256:IozEKdw2dB8TZxkpPdMxcWSoWTIMwoLaCcZJ1AJnY2o
2 changed files with 14 additions and 13 deletions

View file

@ -82,8 +82,8 @@ async fn link(discord_id: u64, uuid: &str, pool: &Pool<Sqlite>) {
.await .await
.unwrap_or(u16::MAX) .unwrap_or(u16::MAX)
.cast_signed(); .cast_signed();
let _ = sqlx::query(format!("UPDATE minecraft_links SET link_id = {} WHERE link_id = {new_link_id_discord};", link_id_mc_old.cast_signed()).as_str()).execute(pool).await; sqlx::query(format!("UPDATE minecraft_links SET link_id = {} WHERE link_id = {new_link_id_discord};", link_id_mc_old.cast_signed()).as_str()).execute(pool).await.expect("Database Error: linking previously linked accounts by another user");
let _ = sqlx::query( sqlx::query(
format!( format!(
"UPDATE discord_links SET link_id = {} WHERE link_id = {new_link_id_discord};", "UPDATE discord_links SET link_id = {} WHERE link_id = {new_link_id_discord};",
link_id_mc_old.cast_signed() link_id_mc_old.cast_signed()
@ -91,23 +91,23 @@ async fn link(discord_id: u64, uuid: &str, pool: &Pool<Sqlite>) {
.as_str(), .as_str(),
) )
.execute(pool) .execute(pool)
.await; .await.expect("Database Error: linking previously linked accounts by another user");
link_id_mc_old link_id_mc_old
} }
}; };
let link_id = link_id.cast_signed(); let link_id = link_id.cast_signed();
let discord_id = discord_id.cast_signed(); let discord_id = discord_id.cast_signed();
let _ = sqlx::query( sqlx::query(
format!("INSERT INTO minecraft_links VALUES ({link_id}, \"{uuid}\");").as_str(), format!("INSERT INTO minecraft_links VALUES ({link_id}, \"{uuid}\");").as_str(),
) )
.execute(pool) .execute(pool)
.await; .await.expect("Database Error: inserting new minecraft value");
let _ = sqlx::query( sqlx::query(
format!("INSERT INTO discord_links VALUES ({link_id}, \"{discord_id}\");").as_str(), format!("INSERT INTO discord_links VALUES ({link_id}, \"{discord_id}\");").as_str(),
) )
.execute(pool) .execute(pool)
.await; .await.expect("Database Error: inserting new discord value");
} }
#[derive(Serialize, Deserialize)] #[derive(Serialize, Deserialize)]
@ -140,7 +140,7 @@ struct MojangPlayer {
async fn minecraft_uuid_for_username(name: String) -> Result<String, serde_json::Error> { async fn minecraft_uuid_for_username(name: String) -> Result<String, serde_json::Error> {
let url = format!("https://api.mojang.com/users/profiles/minecraft/{name}"); let url = format!("https://api.mojang.com/users/profiles/minecraft/{name}");
let response = reqwest::get(url).await.unwrap(); let response = reqwest::get(url).await.expect(format!("Failed retrieving hypixel response for {name}").as_str());
let response_text = response.text().await.unwrap(); let response_text = response.text().await.unwrap();
return (serde_json::from_str(response_text.as_str()) return (serde_json::from_str(response_text.as_str())
as Result<MojangPlayer, serde_json::Error>) as Result<MojangPlayer, serde_json::Error>)
@ -191,7 +191,7 @@ async fn link_id_from_discord(pool: &Pool<Sqlite>, snowflake: u64) -> Option<u16
) )
.fetch_optional(pool) .fetch_optional(pool)
.await .await
.unwrap() .expect("Database error: fetching link id by discord")
.map(|discord_link: DiscordLink| discord_link.link_id.cast_unsigned()); .map(|discord_link: DiscordLink| discord_link.link_id.cast_unsigned());
} }
async fn link_id_from_minecraft(pool: &Pool<Sqlite>, minecraft_uuid: String) -> Option<u16> { async fn link_id_from_minecraft(pool: &Pool<Sqlite>, minecraft_uuid: String) -> Option<u16> {
@ -203,7 +203,7 @@ async fn link_id_from_minecraft(pool: &Pool<Sqlite>, minecraft_uuid: String) ->
) )
.fetch_optional(pool) .fetch_optional(pool)
.await .await
.unwrap() .expect("Database error: fetching link id by uuid")
.map(|minecraft_link: MinecraftLink| minecraft_link.link_id.cast_unsigned()); .map(|minecraft_link: MinecraftLink| minecraft_link.link_id.cast_unsigned());
} }
@ -211,7 +211,9 @@ async fn new_link_id(pool: &Pool<Sqlite>) -> u16 {
let result: Result<LinkId, sqlx::Error> = query_as("SELECT link_id FROM minecraft_links WHERE link_id = (SELECT MAX(link_id) FROM minecraft_links) LIMIT 1;") let result: Result<LinkId, sqlx::Error> = query_as("SELECT link_id FROM minecraft_links WHERE link_id = (SELECT MAX(link_id) FROM minecraft_links) LIMIT 1;")
.fetch_one(pool) .fetch_one(pool)
.await; .await;
result.unwrap().link_id.cast_unsigned() + 1 result
.expect("Database error: fetching new id")
.link_id.cast_unsigned() + 1
} }
async fn minecraft_uuids(pool: &Pool<Sqlite>, link_id: u16) -> Vec<String> { async fn minecraft_uuids(pool: &Pool<Sqlite>, link_id: u16) -> Vec<String> {

View file

@ -28,7 +28,6 @@ struct ReadyHandler;
async fn main() { async fn main() {
let sqlite_pool = sqlx::sqlite::SqlitePoolOptions::new() let sqlite_pool = sqlx::sqlite::SqlitePoolOptions::new()
.idle_timeout(Duration::from_secs(10)) .idle_timeout(Duration::from_secs(10))
.max_connections(3)
.connect_lazy("sqlite:accounts.db") .connect_lazy("sqlite:accounts.db")
.unwrap(); .unwrap();
@ -89,7 +88,7 @@ async fn main() {
let token = std::env::var("DISCORD_TOKEN").unwrap(); let token = std::env::var("DISCORD_TOKEN").unwrap();
let intents = let intents =
serenity::GatewayIntents::non_privileged() | serenity::GatewayIntents::MESSAGE_CONTENT | GatewayIntents::GUILD_MEMBERS; GatewayIntents::non_privileged() | GatewayIntents::MESSAGE_CONTENT | GatewayIntents::GUILD_MEMBERS;
let client = serenity::ClientBuilder::new(token, intents) let client = serenity::ClientBuilder::new(token, intents)
.framework(framework) .framework(framework)