PosnetProcessorFactory::createProcessor()   A
last analyzed

Complexity

Conditions 6
Paths 6

Size

Total Lines 15
Code Lines 13

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 13
dl 0
loc 15
rs 9.2222
c 0
b 0
f 0
cc 6
nc 6
nop 1
1
<?php
2
namespace Paranoia\Processor;
3
4
use Paranoia\Exception\InvalidArgumentException;
5
use Paranoia\Processor\Posnet\CancelResponseProcessor;
6
use Paranoia\Processor\Posnet\PostAuthorizationResponseProcessor;
7
use Paranoia\Processor\Posnet\PreAuthorizationResponseProcessor;
8
use Paranoia\Processor\Posnet\RefundResponseProcessor;
9
use Paranoia\Processor\Posnet\SaleResponseProcessor;
10
use Paranoia\TransactionType;
11
12
class PosnetProcessorFactory 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