. */ namespace Modules\StatoServizi\API\v1; use API\Interfaces\RetrieveInterface; use API\Resource; use Util\FileSystem; class FolderSize extends Resource implements RetrieveInterface { public function retrieve($request) { $dirs = $request['dirs']; if (empty($dirs)) { $backup_dir = \App::getConfig()['backup_dir']; $dirs = [ $backup_dir => tr('Backup'), base_dir().'/files' => tr('Allegati'), base_dir().'/logs' => tr('Logs'), ]; } else { $array = explode(',', $dirs); foreach ($array as $key => $value) { $dirs = [ base_dir().'/'.$value => $key, ]; } } $results = []; $total = 0; foreach ($dirs as $dir => $description) { $size = FileSystem::folderSize($dir); $results[] = [ 'description' => $description, 'size' => $size, 'formattedSize' => FileSystem::formatBytes($size), ]; $total += $size; } $response = [ 'dirs' => $results, 'size' => $total, 'formattedSize' => FileSystem::formatBytes($total), ]; return $response; } }