diff options
Diffstat (limited to 'src/import.rs')
-rw-r--r-- | src/import.rs | 54 |
1 files changed, 0 insertions, 54 deletions
diff --git a/src/import.rs b/src/import.rs deleted file mode 100644 index f7d9873..0000000 --- a/src/import.rs +++ /dev/null @@ -1,54 +0,0 @@ -use serde::Deserialize; - -use crate::database::{BoardRow, Database, Error}; - -#[derive(Debug, Deserialize)] -pub struct Emboard { - guildName: String, - leaderboard: Vec<EmboardRow>, -} - -#[derive(Debug, Deserialize)] -pub struct EmboardRow { - guildId: String, - discordId: String, - points: String, - username: String, -} - -pub fn import(db: &Database, json: String) { - let embaord: Emboard = match serde_json::from_str(&json) { - Ok(e) => e, - Err(e) => { - panic!("{e}"); - } - }; - - let Some(first) = embaord.leaderboard.first() else { - return; - }; - - let guild_id = u64::from_str_radix(&first.guildId, 10).unwrap(); - if db.get_leaderboard(guild_id).is_err() { - db.create_leaderboard(guild_id).unwrap(); - } - - for user in embaord.leaderboard { - let user_id = u64::from_str_radix(&user.discordId, 10).unwrap(); - let points = i64::from_str_radix(&user.points, 10).unwrap(); - - let res = db.give_user_points(guild_id, user_id, points); - if let Err(Error::UserNotExist) = res { - db.add_user_to_leaderboard( - guild_id, - BoardRow { - user_id, - user_handle: user.username, - user_nickname: None, - points, - }, - ) - .unwrap(); - } - } -} |