63 lines
2.4 KiB
PHP
63 lines
2.4 KiB
PHP
<?php
|
|
namespace App\Console\Commands;
|
|
|
|
use App\Http\Controllers\Admin\CodeQualityController;
|
|
use Illuminate\Console\Command;
|
|
use Illuminate\Http\Request;
|
|
|
|
class CodeQualityScan extends Command
|
|
{
|
|
protected $signature = 'code-quality:scan
|
|
{--path=app,resources/views : Percorsi separati da virgole}
|
|
{--severity=all : Severità (all|critical|error|warning|info)}
|
|
{--module=all : Modulo (es. gescon-import)}
|
|
{--menu=all : Menù (es. gescon-import)}
|
|
{--stabile= : Codice stabile/id per QA archivi e Ordinarie}
|
|
{--anno= : Anno da usare nei controlli QA data-aware}
|
|
{--no-data-checks : Disattiva i controlli integrità archivi (DB)}
|
|
{--format=csv : Formato export (csv|json)}
|
|
{--output= : File di output (se omesso stampa su stdout)}';
|
|
|
|
protected $description = 'Esegue una scansione qualità codice mirata ed esporta i risultati';
|
|
|
|
public function handle()
|
|
{
|
|
$path = $this->option('path');
|
|
$severity = $this->option('severity');
|
|
$module = $this->option('module');
|
|
$menu = $this->option('menu');
|
|
$stabile = $this->option('stabile');
|
|
$anno = $this->option('anno');
|
|
$includeDataChecks = ! $this->option('no-data-checks');
|
|
$format = strtolower($this->option('format'));
|
|
$output = $this->option('output');
|
|
|
|
/** @var CodeQualityController $controller */
|
|
$controller = app(CodeQualityController::class);
|
|
|
|
// Usa l'endpoint export per generare CSV/JSON consistente con la UI
|
|
$request = Request::create('/admin/code-quality/export', 'POST', [
|
|
'path' => $path,
|
|
'severity' => $severity,
|
|
'module' => $module,
|
|
'menu' => $menu,
|
|
'stabile' => $stabile,
|
|
'anno' => $anno,
|
|
'include_data_checks' => $includeDataChecks ? 1 : 0,
|
|
'format' => $format,
|
|
]);
|
|
|
|
$response = $controller->export($request);
|
|
$content = $response->getContent();
|
|
|
|
if ($output) {
|
|
file_put_contents($output, $content);
|
|
$this->info("Report salvato in: {$output}");
|
|
} else {
|
|
$this->line($content);
|
|
}
|
|
|
|
return Command::SUCCESS;
|
|
}
|
|
}
|