fix: correct storage usage calculation by using direct SQL query
The original implementation tried to find user's home folder via file_repository.list_files(None), but this only returns files (not folders) and folders are in a separate table. This resulted in storage always showing 0 bytes. Fixed by using a direct SQL query to sum file sizes by user_id from storage.files table, which is more efficient (O(1) vs recursive) and correctly calculates storage for all files owned by the user.
This commit is contained in:
+2
-2
@@ -398,7 +398,7 @@ impl AppServiceFactory {
|
||||
/// Creates the storage usage service (requires database)
|
||||
pub fn create_storage_usage_service(
|
||||
&self,
|
||||
repos: &RepositoryServices,
|
||||
_repos: &RepositoryServices,
|
||||
db_pool: &Arc<PgPool>,
|
||||
) -> Arc<dyn crate::application::ports::storage_ports::StorageUsagePort> {
|
||||
let user_repository = Arc::new(
|
||||
@@ -406,7 +406,7 @@ impl AppServiceFactory {
|
||||
);
|
||||
let service = Arc::new(
|
||||
crate::application::services::storage_usage_service::StorageUsageService::new(
|
||||
repos.file_read_repository.clone(),
|
||||
db_pool.clone(),
|
||||
user_repository,
|
||||
),
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user