2021-12-11 00:44:01 +00:00
|
|
|
<?php
|
|
|
|
|
|
|
|
namespace SparkPlug\Com\Noccy\ApiClient\Commands;
|
|
|
|
|
|
|
|
use Spark\Commands\Command;
|
|
|
|
use SparkPlug;
|
|
|
|
use SparkPlug\Com\Noccy\ApiClient\Api\Method;
|
|
|
|
use SparkPlug\Com\Noccy\ApiClient\ApiClientPlugin;
|
2021-12-17 11:51:29 +00:00
|
|
|
use SparkPlug\Com\Noccy\ApiClient\Log\RequestData;
|
2021-12-11 00:44:01 +00:00
|
|
|
use SparkPlug\Com\Noccy\ApiClient\Request\RequestBuilder;
|
|
|
|
use Symfony\Component\Console\Helper\Table;
|
|
|
|
use Symfony\Component\Console\Input\InputArgument;
|
|
|
|
use Symfony\Component\Console\Input\InputInterface;
|
|
|
|
use Symfony\Component\Console\Input\InputOption;
|
|
|
|
use Symfony\Component\Console\Output\OutputInterface;
|
|
|
|
|
|
|
|
class ApiLogsCommand extends Command
|
|
|
|
{
|
|
|
|
protected function configure()
|
|
|
|
{
|
|
|
|
$this->setName("api:logs")
|
|
|
|
->setDescription("Show previous requests and manage the log")
|
|
|
|
->addOption("clear", null, InputOption::VALUE_NONE, "Clear the log")
|
|
|
|
->addOption("write", "w", InputOption::VALUE_REQUIRED, "Write the formatted entries to a file")
|
|
|
|
;
|
|
|
|
}
|
|
|
|
|
|
|
|
protected function execute(InputInterface $input, OutputInterface $output)
|
|
|
|
{
|
|
|
|
/** @var ApiClientPlugin */
|
|
|
|
$plugin = get_plugin('com.noccy.apiclient');
|
|
|
|
|
2021-12-17 11:51:29 +00:00
|
|
|
$iter = $plugin->getLogIterator("default");
|
|
|
|
|
|
|
|
foreach ($iter as $index=>$log) {
|
|
|
|
$this->dumpLog($log, $index, $output);
|
|
|
|
}
|
2021-12-11 00:44:01 +00:00
|
|
|
|
|
|
|
return Command::SUCCESS;
|
|
|
|
}
|
2021-12-17 11:51:29 +00:00
|
|
|
|
|
|
|
private function dumpLog(array $log, int $index, OutputInterface $output)
|
|
|
|
{
|
|
|
|
$output->writeln("<comment>#{$index}</> <options=bold>{$log['request']['info']['query']}</> (<info>{$log['method']}</>) ".strlen($log['response']['body'])."b");
|
|
|
|
}
|
2021-12-11 00:44:01 +00:00
|
|
|
}
|