@@ -65,7 +65,7 @@ public function __construct(string $appName,
6565 * @param ?string $dir
6666 * @return JSONResponse
6767 */
68- public function info (string $ t , ?string $ password = null , ?string $ dir = null ) {
68+ public function info (string $ t , ?string $ password = null , ?string $ dir = null , int $ depth = - 1 ): JSONResponse {
6969 try {
7070 $ share = $ this ->shareManager ->getShareByToken ($ t );
7171 } catch (ShareNotFound $ e ) {
@@ -96,34 +96,39 @@ public function info(string $t, ?string $password = null, ?string $dir = null) {
9696 }
9797 }
9898
99- return new JSONResponse ($ this ->parseNode ($ node , $ permissionMask ));
99+ return new JSONResponse ($ this ->parseNode ($ node , $ permissionMask, $ depth ));
100100 }
101101
102- private function parseNode (Node $ node , int $ permissionMask) {
102+ private function parseNode (Node $ node , int $ permissionMask, int $ depth ): array {
103103 if ($ node instanceof File) {
104104 return $ this ->parseFile ($ node , $ permissionMask );
105105 }
106- return $ this ->parseFolder ($ node , $ permissionMask );
106+ /** @var Folder $node */
107+ return $ this ->parseFolder ($ node , $ permissionMask , $ depth );
107108 }
108109
109- private function parseFile (File $ file , int $ permissionMask ) {
110+ private function parseFile (File $ file , int $ permissionMask ): array {
110111 return $ this ->format ($ file , $ permissionMask );
111112 }
112113
113- private function parseFolder (Folder $ folder , int $ permissionMask) {
114+ private function parseFolder (Folder $ folder , int $ permissionMask, int $ depth ): array {
114115 $ data = $ this ->format ($ folder , $ permissionMask );
115116
117+ if ($ depth === 0 ) {
118+ return $ data ;
119+ }
120+
116121 $ data ['children ' ] = [];
117122
118123 $ nodes = $ folder ->getDirectoryListing ();
119124 foreach ($ nodes as $ node ) {
120- $ data ['children ' ][] = $ this ->parseNode ($ node , $ permissionMask );
125+ $ data ['children ' ][] = $ this ->parseNode ($ node , $ permissionMask, $ depth <= - 1 ? - 1 : $ depth - 1 );
121126 }
122127
123128 return $ data ;
124129 }
125130
126- private function format (Node $ node , int $ permissionMask ) {
131+ private function format (Node $ node , int $ permissionMask ): array {
127132 $ entry = [];
128133
129134 $ entry ['id ' ] = $ node ->getId ();
0 commit comments