diff options
Diffstat (limited to 'src/db.rs')
-rw-r--r-- | src/db.rs | 18 |
1 files changed, 9 insertions, 9 deletions
@@ -9,9 +9,9 @@ | |||
9 | //! [`Db::users`] is the in memory representation of the users, | 9 | //! [`Db::users`] is the in memory representation of the users, |
10 | //! with their public keys, `metu_ids` and gradecoin balances. | 10 | //! with their public keys, `metu_ids` and gradecoin balances. |
11 | use crate::block::{Block, Fingerprint, Id, Transaction}; | 11 | use crate::block::{Block, Fingerprint, Id, Transaction}; |
12 | use crate::student::{MetuId, User, UserAtRest}; | ||
13 | use crate::config::Config; | 12 | use crate::config::Config; |
14 | use log::debug; | 13 | use crate::student::{MetuId, User, UserAtRest}; |
14 | use log::info; | ||
15 | use parking_lot::RwLock; | 15 | use parking_lot::RwLock; |
16 | use std::{collections::HashMap, fs, io, path::PathBuf, sync::Arc}; | 16 | use std::{collections::HashMap, fs, io, path::PathBuf, sync::Arc}; |
17 | 17 | ||
@@ -32,7 +32,7 @@ impl Db { | |||
32 | // Load bots | 32 | // Load bots |
33 | let users: HashMap<Fingerprint, User> = get_friendly_users(); | 33 | let users: HashMap<Fingerprint, User> = get_friendly_users(); |
34 | 34 | ||
35 | // Read the list of users who can register | 35 | // Load the list of users who can register |
36 | let preapproved_users = read_approved_users(&config.preapproved_users); | 36 | let preapproved_users = read_approved_users(&config.preapproved_users); |
37 | 37 | ||
38 | let mut db = Db { | 38 | let mut db = Db { |
@@ -43,21 +43,21 @@ impl Db { | |||
43 | preapproved_users, | 43 | preapproved_users, |
44 | }; | 44 | }; |
45 | 45 | ||
46 | // Read blocks | 46 | // Load the latest block, continue from where we left off |
47 | if let Some(block_path) = last_block_content(&db.config.name) { | 47 | if let Some(block_path) = last_block_content(&db.config.name) { |
48 | db.populate_with_last_block(block_path); | 48 | db.populate_with_last_block(block_path); |
49 | } | 49 | } |
50 | 50 | ||
51 | // Read users | 51 | // Load the users that had registered themselves |
52 | if let Ok(users_path) = read_users(&db.config.name) { | 52 | if let Ok(users_path) = read_users(&db.config.name) { |
53 | db.populate_with_users(users_path); | 53 | db.populate_with_users(users_path); |
54 | } | 54 | } |
55 | 55 | ||
56 | return db; | 56 | db |
57 | } | 57 | } |
58 | 58 | ||
59 | fn populate_with_last_block(&mut self, path: String) { | 59 | fn populate_with_last_block(&mut self, path: String) { |
60 | debug!("Populating db with the latest block {}", path); | 60 | info!("Populating db with the latest block {}", path); |
61 | let file = fs::read(path).unwrap(); | 61 | let file = fs::read(path).unwrap(); |
62 | let json = std::str::from_utf8(&file).unwrap(); | 62 | let json = std::str::from_utf8(&file).unwrap(); |
63 | let block: Block = serde_json::from_str(json).unwrap(); | 63 | let block: Block = serde_json::from_str(json).unwrap(); |
@@ -71,7 +71,7 @@ impl Db { | |||
71 | String::from_utf8(file_content).expect("we have written a malformed user file"); | 71 | String::from_utf8(file_content).expect("we have written a malformed user file"); |
72 | let user_at_rest: UserAtRest = serde_json::from_str(&json).unwrap(); | 72 | let user_at_rest: UserAtRest = serde_json::from_str(&json).unwrap(); |
73 | 73 | ||
74 | debug!("Populating db with user: {:?}", user_at_rest); | 74 | info!("Populating db with user: {:?}", user_at_rest); |
75 | self.users | 75 | self.users |
76 | .write() | 76 | .write() |
77 | .insert(user_at_rest.fingerprint, user_at_rest.user); | 77 | .insert(user_at_rest.fingerprint, user_at_rest.user); |
@@ -122,7 +122,7 @@ fn read_block_name(config_name: &str) -> io::Result<Vec<PathBuf>> { | |||
122 | } | 122 | } |
123 | 123 | ||
124 | fn parse_block(path: &str) -> u64 { | 124 | fn parse_block(path: &str) -> u64 { |
125 | let start_pos = path.rfind("/").unwrap() + 1; | 125 | let start_pos = path.rfind('/').unwrap() + 1; |
126 | let end_pos = path.find(".block").unwrap(); | 126 | let end_pos = path.find(".block").unwrap(); |
127 | let block_str = path[start_pos..end_pos].to_string(); | 127 | let block_str = path[start_pos..end_pos].to_string(); |
128 | let block_u64: u64 = block_str.parse().unwrap(); | 128 | let block_u64: u64 = block_str.parse().unwrap(); |