Test Failed
Pull Request — master (#10)
by Laurens
01:55
created

IzettleClientFactory::getInventoryClient()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 7
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 0
Metric Value
dl 0
loc 7
rs 9.4285
c 0
b 0
f 0
ccs 0
cts 0
cp 0
cc 1
eloc 4
nc 1
nop 2
crap 2
1
<?php
2
3
declare(strict_types=1);
4
5
namespace LauLamanApps\IzettleApi;
6
7
use LauLamanApps\IzettleApi\Client\InventoryClient;
8
use LauLamanApps\IzettleApi\Client\Product\CategoryBuilder;
9
use LauLamanApps\IzettleApi\Client\Product\DiscountBuilder;
10
use LauLamanApps\IzettleApi\Client\Product\LibraryBuilder;
11
use LauLamanApps\IzettleApi\Client\Product\ProductBuilder as ProductProductBuilder;
12
use LauLamanApps\IzettleApi\Client\Product\VariantBuilder;
13
use LauLamanApps\IzettleApi\Client\ProductClient;
14
use LauLamanApps\IzettleApi\Client\Purchase\CoordinatesBuilder;
15
use LauLamanApps\IzettleApi\Client\Purchase\PaymentBuilder;
16
use LauLamanApps\IzettleApi\Client\Purchase\ProductBuilder as PurchaseProductBuilder;
17
use LauLamanApps\IzettleApi\Client\Purchase\PurchaseBuilder;
18
use LauLamanApps\IzettleApi\Client\Purchase\PurchaseHistoryBuilder;
19
use LauLamanApps\IzettleApi\Client\Purchase\VatBuilder;
20
use LauLamanApps\IzettleApi\Client\PurchaseClient;
21
use LauLamanApps\IzettleApi\Client\Universal\ImageBuilder;
22
use Ramsey\Uuid\UuidInterface;
23
24
final class IzettleClientFactory
25 4
{
26
    public static function getProductClient(IzettleClientInterface $client, ?UuidInterface $organizationUuid = null): ProductClient
27 4
    {
28 4
        $categoryBuilder = new CategoryBuilder();
29 4
        $imageBuilder = new ImageBuilder();
30 4
        $variantBuilder = new VariantBuilder();
31 4
        $discountBuilder = new DiscountBuilder($imageBuilder);
32 4
        $productBuilder = new ProductProductBuilder($categoryBuilder, $imageBuilder, $variantBuilder);
33
        $libraryBuilder = new LibraryBuilder($productBuilder, $discountBuilder);
34 4
35 4
        return new ProductClient(
36 4
            $client,
37 4
            $organizationUuid,
38 4
            $categoryBuilder,
39 4
            $discountBuilder,
40 4
            $libraryBuilder,
41
            $productBuilder
42
        );
43
    }
44 3
45
    public static function getPurchaseClient(IzettleClientInterface $client): PurchaseClient
46 3
    {
47 3
        $coordinatesBuilder = new CoordinatesBuilder();
48 3
        $purchaseProductBuilder = new PurchaseProductBuilder();
49 3
        $paymentBuilder = new PaymentBuilder();
50 3
        $vatBuilder = new VatBuilder();
51 3
        $purchaseBuilder = new PurchaseBuilder($coordinatesBuilder, $purchaseProductBuilder, $paymentBuilder, $vatBuilder);
52
        $purchaseHistoryBuilder = new PurchaseHistoryBuilder($purchaseBuilder);
53 3
54 3
        return new PurchaseClient(
55 3
            $client,
56 3
            $purchaseHistoryBuilder,
57
            $purchaseBuilder
58
        );
59
    }
60
61
    public static function getInventoryClient(IzettleClientInterface $client, ?UuidInterface $organizationUuid = null): InventoryClient
62
    {
63
        return new InventoryClient(
64
            $client,
65
            $organizationUuid
66
        );
67
    }
68
}
69