yinming commited on
Commit ·
9ed9e48
1
Parent(s): 710977f
Add debug logs for data directory and save operations
Browse files
server/src/modules/account.rs
CHANGED
|
@@ -21,14 +21,17 @@ pub fn get_data_dir() -> Result<PathBuf, String> {
|
|
| 21 |
// Check for cloud environment (/data)
|
| 22 |
let cloud_path = PathBuf::from(DATA_DIR_CLOUD);
|
| 23 |
if cloud_path.exists() {
|
|
|
|
| 24 |
return Ok(cloud_path);
|
| 25 |
}
|
| 26 |
|
| 27 |
// Check for ./data (current working directory, used in Docker)
|
| 28 |
let cwd_data = PathBuf::from("./data");
|
| 29 |
if cwd_data.exists() {
|
| 30 |
-
|
| 31 |
-
.map_err(|e| format!("Failed to canonicalize ./data: {}", e));
|
|
|
|
|
|
|
| 32 |
}
|
| 33 |
|
| 34 |
// Fallback to local development path
|
|
@@ -41,6 +44,7 @@ pub fn get_data_dir() -> Result<PathBuf, String> {
|
|
| 41 |
.map_err(|e| format!("Failed to create data directory: {}", e))?;
|
| 42 |
}
|
| 43 |
|
|
|
|
| 44 |
Ok(data_dir)
|
| 45 |
}
|
| 46 |
|
|
@@ -83,16 +87,21 @@ pub fn save_account_index(index: &AccountIndex) -> Result<(), String> {
|
|
| 83 |
let index_path = data_dir.join(ACCOUNTS_INDEX);
|
| 84 |
let temp_path = data_dir.join(format!("{}.tmp", ACCOUNTS_INDEX));
|
| 85 |
|
|
|
|
|
|
|
| 86 |
let content = serde_json::to_string_pretty(index)
|
| 87 |
.map_err(|e| format!("Failed to serialize account index: {}", e))?;
|
| 88 |
|
| 89 |
// Write to temp file
|
| 90 |
-
fs::write(&temp_path, content)
|
| 91 |
.map_err(|e| format!("Failed to write temp index file: {}", e))?;
|
| 92 |
|
| 93 |
// Atomic rename
|
| 94 |
-
fs::rename(temp_path, index_path)
|
| 95 |
-
.map_err(|e| format!("Failed to replace index file: {}", e))
|
|
|
|
|
|
|
|
|
|
| 96 |
}
|
| 97 |
|
| 98 |
/// Load account data
|
|
|
|
| 21 |
// Check for cloud environment (/data)
|
| 22 |
let cloud_path = PathBuf::from(DATA_DIR_CLOUD);
|
| 23 |
if cloud_path.exists() {
|
| 24 |
+
modules::logger::log_debug(&format!("[get_data_dir] Using cloud path: {:?}", cloud_path));
|
| 25 |
return Ok(cloud_path);
|
| 26 |
}
|
| 27 |
|
| 28 |
// Check for ./data (current working directory, used in Docker)
|
| 29 |
let cwd_data = PathBuf::from("./data");
|
| 30 |
if cwd_data.exists() {
|
| 31 |
+
let canonical = cwd_data.canonicalize()
|
| 32 |
+
.map_err(|e| format!("Failed to canonicalize ./data: {}", e))?;
|
| 33 |
+
modules::logger::log_debug(&format!("[get_data_dir] Using cwd data path: {:?}", canonical));
|
| 34 |
+
return Ok(canonical);
|
| 35 |
}
|
| 36 |
|
| 37 |
// Fallback to local development path
|
|
|
|
| 44 |
.map_err(|e| format!("Failed to create data directory: {}", e))?;
|
| 45 |
}
|
| 46 |
|
| 47 |
+
modules::logger::log_debug(&format!("[get_data_dir] Using local path: {:?}", data_dir));
|
| 48 |
Ok(data_dir)
|
| 49 |
}
|
| 50 |
|
|
|
|
| 87 |
let index_path = data_dir.join(ACCOUNTS_INDEX);
|
| 88 |
let temp_path = data_dir.join(format!("{}.tmp", ACCOUNTS_INDEX));
|
| 89 |
|
| 90 |
+
modules::logger::log_info(&format!("[save_account_index] Saving to: {:?}", index_path));
|
| 91 |
+
|
| 92 |
let content = serde_json::to_string_pretty(index)
|
| 93 |
.map_err(|e| format!("Failed to serialize account index: {}", e))?;
|
| 94 |
|
| 95 |
// Write to temp file
|
| 96 |
+
fs::write(&temp_path, &content)
|
| 97 |
.map_err(|e| format!("Failed to write temp index file: {}", e))?;
|
| 98 |
|
| 99 |
// Atomic rename
|
| 100 |
+
fs::rename(&temp_path, &index_path)
|
| 101 |
+
.map_err(|e| format!("Failed to replace index file: {}", e))?;
|
| 102 |
+
|
| 103 |
+
modules::logger::log_info(&format!("[save_account_index] Saved {} accounts successfully", index.accounts.len()));
|
| 104 |
+
Ok(())
|
| 105 |
}
|
| 106 |
|
| 107 |
/// Load account data
|