Passed
Pull Request — master (#93)
by
unknown
03:47
created

ModelCreator   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 31
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 15
c 1
b 0
f 0
dl 0
loc 31
rs 10
wmc 2

2 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 6 1
A createWishlistItemToPdf() 0 17 1
1
<?php
2
3
declare(strict_types=1);
4
5
namespace BitBag\SyliusWishlistPlugin\Services\Generator;
6
7
use BitBag\SyliusWishlistPlugin\Command\Wishlist\WishlistItemInterface;
8
use BitBag\SyliusWishlistPlugin\Model\Factory\VariantPdfModelFactoryInterface;
9
use BitBag\SyliusWishlistPlugin\Model\VariantPdfModelInterface;
10
use BitBag\SyliusWishlistPlugin\Resolver\VariantImageToDataUriResolverInterface;
11
use Sylius\Component\Core\Model\ProductVariant;
12
use Symfony\Component\HttpFoundation\Request;
13
14
final class ModelCreator implements ModelCreatorInterface
15
{
16
    private VariantImageToDataUriResolverInterface $variantImageToDataUriResolver;
17
18
    private VariantPdfModelFactoryInterface $variantPdfModelFactory;
19
20
    public function __construct(
21
        VariantImageToDataUriResolverInterface $variantImageToDataUriResolver,
22
        VariantPdfModelFactoryInterface $variantPdfModelFactory
23
    ) {
24
        $this->variantImageToDataUriResolver = $variantImageToDataUriResolver;
25
        $this->variantPdfModelFactory = $variantPdfModelFactory;
26
    }
27
28
    public function createWishlistItemToPdf(
29
        WishlistItemInterface $wishlistProduct,
30
        Request $request,
31
        ProductVariant $variant
32
    ): VariantPdfModelInterface
33
    {
34
        $cartItem = $wishlistProduct->getCartItem()->getCartItem();
35
        $quantity = $cartItem->getQuantity();
36
        $baseUrl = $request->getSchemeAndHttpHost();
37
        $urlToImage = $this->variantImageToDataUriResolver->resolve($variant, $baseUrl);
38
        $actualVariant = $cartItem->getVariant()->getCode();
0 ignored issues
show
Bug introduced by
The method getVariant() does not exist on Sylius\Component\Order\Model\OrderItemInterface. It seems like you code against a sub-type of said class. However, the method does not exist in Sylius\Component\Order\Model\OrderItem. Are you sure you never get one of those? ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

38
        $actualVariant = $cartItem->/** @scrutinizer ignore-call */ getVariant()->getCode();
Loading history...
39
40
        return $this->variantPdfModelFactory->createWithVariantAndImagePath(
41
            $variant,
42
            $urlToImage,
43
            $quantity,
44
            $actualVariant
45
        );
46
    }
47
}
48