GvpProcessorFactory   A
last analyzed

Complexity

Total Complexity 6

Size/Duplication

Total Lines 21
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
wmc 6
eloc 14
dl 0
loc 21
rs 10
c 0
b 0
f 0

1 Method

Rating   Name   Duplication   Size   Complexity  
A createProcessor() 0 15 6
1
<?php
2
namespace Paranoia\Processor;
3
4
use Paranoia\Exception\InvalidArgumentException;
5
use Paranoia\Processor\Gvp\CancelResponseProcessor;
6
use Paranoia\Processor\Gvp\PostAuthorizationResponseProcessor;
7
use Paranoia\Processor\Gvp\PreAuthorizationResponseProcessor;
8
use Paranoia\Processor\Gvp\RefundResponseProcessor;
9
use Paranoia\Processor\Gvp\SaleResponseProcessor;
10
use Paranoia\TransactionType;
11
12
class GvpProcessorFactory extends AbstractProcessorFactory
13
{
14
    /**
15
     * @param string $transactionType
16
     * @return AbstractResponseProcessor
17
     */
18
    public function createProcessor($transactionType)
19
    {
20
        switch ($transactionType) {
21
            case TransactionType::SALE:
22
                return new SaleResponseProcessor($this->configuration);
23
            case TransactionType::REFUND:
24
                return new RefundResponseProcessor($this->configuration);
25
            case TransactionType::CANCEL:
26
                return new CancelResponseProcessor($this->configuration);
27
            case TransactionType::PRE_AUTHORIZATION:
28
                return new PreAuthorizationResponseProcessor($this->configuration);
29
            case TransactionType::POST_AUTHORIZATION:
30
                return new PostAuthorizationResponseProcessor($this->configuration);
31
            default:
32
                throw new InvalidArgumentException('Bad transaction type: ' . $transactionType);
33
        }
34
    }
35
}
36