Files
Investidor-V2/app/Console/Commands/SuiteCrmProbe.php
T
nala 250ac35fd1
tests / ci (push) Canceled after 0s
first commit
2026-09-28 10:01:09 +02:00

42 lines
1.5 KiB
PHP

<?php
namespace App\Console\Commands;
use App\Integrations\SuiteCrm\SuiteCrmClient;
use App\Integrations\SuiteCrm\SuiteCrmException;
use Illuminate\Console\Command;
use Throwable;
class SuiteCrmProbe extends Command
{
protected $signature = 'suitecrm:probe {--module=Contacts : Modulo cujos metadados serao consultados}';
protected $description = 'Verifica OAuth e leitura de metadados sem escrever registos comerciais';
public function handle(SuiteCrmClient $client): int
{
try {
$response = $client->fields((string) $this->option('module'));
if (! isset($response['data']) || ! is_array($response['data']) || $response['data'] === []) {
$this->error('Resposta sem metadados utilizaveis. Integracao nao validada.');
return self::FAILURE;
}
} catch (SuiteCrmException $exception) {
$this->error('SuiteCRM indisponivel: '.$exception->reason);
return self::FAILURE;
} catch (Throwable) {
// Cache/database exceptions may contain secrets: never render their messages.
$this->error('Falha interna no diagnostico. Verifique cache, chave da aplicacao e configuracao.');
return self::FAILURE;
}
$this->info('OAuth e leitura de metadados confirmados. Nenhum registo comercial alterado.');
$this->warn('Este teste nao valida permissoes de escrita, sincronizacao, reconciliacao ou prontidao para producao.');
return self::SUCCESS;
}
}