for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
namespace Paranoia\Pos;
use Paranoia\Builder\GvpBuilderFactory;
use Paranoia\Configuration\AbstractConfiguration;
use Paranoia\Processor\GvpProcessorFactory;
use Paranoia\Request\Request;
class Gvp extends AbstractPos
{
/** @var GvpBuilderFactory */
private $builderFactory;
/** @var GvpProcessorFactory */
private $processorFactory;
public function __construct(AbstractConfiguration $configuration)
parent::__construct($configuration);
$this->builderFactory = new GvpBuilderFactory($this->configuration);
$this->processorFactory = new GvpProcessorFactory($this->configuration);
}
/**
* {@inheritdoc}
* @see \Paranoia\Pos\AbstractPos::buildRequest()
* @throws \Paranoia\Exception\NotImplementedError
*/
protected function buildRequest(Request $request, $transactionType)
$rawRequest = $this->builderFactory->createBuilder($transactionType)->build($request);
return array( 'data' => $rawRequest);
* @see \Paranoia\Pos\AbstractPos::parseResponse()
protected function parseResponse($rawResponse, $transactionType)
return $this->processorFactory->createProcessor($transactionType)->process($rawResponse);