* Updated build scripts to handle gitless environments a little better * PDO shell plugin improvements * More tests
		
			
				
	
	
		
			47 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			47 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?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;
 | 
						|
use SparkPlug\Com\Noccy\ApiClient\Log\RequestData;
 | 
						|
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');
 | 
						|
 | 
						|
        $iter = $plugin->getLogIterator("default");
 | 
						|
 | 
						|
        foreach ($iter as $index=>$log) {
 | 
						|
            $this->dumpLog($log, $index, $output);
 | 
						|
        }
 | 
						|
 | 
						|
        return Command::SUCCESS;
 | 
						|
    }
 | 
						|
 | 
						|
    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");
 | 
						|
    }
 | 
						|
}
 |