Passed
Push — master ( 67a5da...c35f7b )
by Jared
01:13
created

MerchantApi::orders()   A

Complexity

Conditions 3
Paths 4

Size

Total Lines 12
Code Lines 8

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 12
rs 9.4285
c 0
b 0
f 0
cc 3
eloc 8
nc 4
nop 3
1
<?php
2
namespace CultureKings\Afterpay\Factory;
3
4
use CultureKings\Afterpay\Model\Merchant\Authorization;
5
use CultureKings\Afterpay\Service\Merchant\Configuration as ConfigurationService;
6
use CultureKings\Afterpay\Service\Merchant\Payments as PaymentsService;
7
use CultureKings\Afterpay\Service\Merchant\Orders as OrdersService;
8
use Doctrine\Common\Annotations\AnnotationRegistry;
9
use GuzzleHttp\Client;
10
use JMS\Serializer\SerializerInterface;
11
12
/**
13
 * Class MerchantApi
14
 * @package CultureKings\Afterpay\Factory
15
 */
16
class MerchantApi
17
{
18
    /**
19
     * @param Authorization            $authorization
20
     * @param Client|null              $client
21
     * @param SerializerInterface|null $serializer
22
     * @return ConfigurationService
23
     */
24
    public static function configuration(
25
        Authorization $authorization,
26
        Client $client = null,
27
        SerializerInterface $serializer = null
28
    ) {
29
    
30
        AnnotationRegistry::registerLoader('class_exists');
31
32
        $afterpayClient = $client ? : new Client([ 'base_uri' => $authorization->getEndpoint() ]);
33
        $afterpaySerializer = $serializer ? : SerializerFactory::getSerializer();
34
35
        return new ConfigurationService($afterpayClient, $authorization, $afterpaySerializer);
36
    }
37
38
    /**
39
     * @param Authorization            $authorization
40
     * @param Client|null              $client
41
     * @param SerializerInterface|null $serializer
42
     * @return PaymentsService
43
     */
44
    public static function payments(
45
        Authorization $authorization,
46
        Client $client = null,
47
        SerializerInterface $serializer = null
48
    ) {
49
    
50
        AnnotationRegistry::registerLoader('class_exists');
51
52
        $afterpayClient = $client ? : new Client([ 'base_uri' => $authorization->getEndpoint() ]);
53
        $afterpaySerializer = $serializer ? : SerializerFactory::getSerializer();
54
55
        return new PaymentsService($afterpayClient, $authorization, $afterpaySerializer);
56
    }
57
58
    /**
59
     * @param Authorization            $authorization
60
     * @param Client|null              $client
61
     * @param SerializerInterface|null $serializer
62
     * @return OrdersService
63
     */
64
    public static function orders(
65
        Authorization $authorization,
66
        Client $client = null,
67
        SerializerInterface $serializer = null
68
    ) {
69
        AnnotationRegistry::registerLoader('class_exists');
70
71
        $afterpayClient = $client ? : new Client([ 'base_uri' => $authorization->getEndpoint() ]);
72
        $afterpaySerializer = $serializer ? : SerializerFactory::getSerializer();
73
74
        return new OrdersService($afterpayClient, $authorization, $afterpaySerializer);
75
    }
76
}
77