@@ -4,6 +4,7 @@ use snafu::prelude::*;
44
55use crate :: database:: category:: { self , CategoryOperator } ;
66use crate :: database:: content_folder:: { self , ContentFolderOperator , PathBreadcrumb } ;
7+ use crate :: database:: torrent:: { self , TorrentOperator } ;
78use crate :: filesystem:: FileSystemEntry ;
89use crate :: state:: AppState ;
910use crate :: state:: error:: * ;
@@ -14,6 +15,7 @@ pub struct FolderRequest {
1415 pub folder : content_folder:: Model ,
1516 pub children : Vec < FileSystemEntry > ,
1617 pub breadcrumbs : Vec < PathBreadcrumb > ,
18+ pub torrents : Vec < torrent:: Model > ,
1719}
1820
1921impl FromRequestParts < AppState > for FolderRequest {
@@ -34,6 +36,7 @@ impl FromRequestParts<AppState> for FolderRequest {
3436 // Read-only operators: no need to extract the current user
3537 let category_operator = CategoryOperator :: new ( app_state. clone ( ) , None ) ;
3638 let content_folder_operator = ContentFolderOperator :: new ( app_state. clone ( ) , None ) ;
39+ let torrent_operator = TorrentOperator :: new ( app_state. clone ( ) , None ) ;
3740
3841 // get current content folders with Path
3942 let current_content_folder = content_folder_operator
@@ -60,11 +63,17 @@ impl FromRequestParts<AppState> for FolderRequest {
6063 category. name, current_content_folder. path
6164 ) ) ;
6265
66+ let torrents = torrent_operator
67+ . list_for_content_folder ( current_content_folder. id )
68+ . await
69+ . context ( TorrentUploadSnafu ) ?;
70+
6371 Ok ( Self {
6472 category,
6573 folder : current_content_folder,
6674 children,
6775 breadcrumbs,
76+ torrents,
6877 } )
6978 }
7079}
0 commit comments