Passed
Push — master ( 3b7f4e...63066e )
by Pieter
05:16
created

TranslationRetriever   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 28
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 1
Metric Value
eloc 9
dl 0
loc 28
rs 10
c 1
b 0
f 1
wmc 4

3 Methods

Rating   Name   Duplication   Size   Complexity  
A retrieveAll() 0 3 1
A __construct() 0 4 1
A retrieve() 0 6 2
1
<?php
2
3
4
namespace W2w\Laravel\Apie\Plugins\IlluminateTranslation\DataLayers;
5
6
use Illuminate\Contracts\Foundation\Application;
7
use Illuminate\Contracts\Translation\Translator;
8
use W2w\Laravel\Apie\Plugins\IlluminateTranslation\ApiResources\Translation;
9
use W2w\Laravel\Apie\Plugins\IlluminateTranslation\ValueObjects\Locale;
10
use W2w\Lib\Apie\Core\SearchFilters\SearchFilterRequest;
11
use W2w\Lib\Apie\Exceptions\BadConfigurationException;
12
use W2w\Lib\Apie\Exceptions\MethodNotAllowedException;
13
use W2w\Lib\Apie\Interfaces\ApiResourceRetrieverInterface;
14
15
class TranslationRetriever implements ApiResourceRetrieverInterface
16
{
17
    /**
18
     * @var Translator
19
     */
20
    private $translator;
21
    /**
22
     * @var Application
23
     */
24
    private $application;
25
26
    public function __construct(Translator $translator, Application $application)
27
    {
28
        $this->translator = $translator;
29
        $this->application = $application;
30
    }
31
32
    public function retrieve(string $resourceClass, $id, array $context)
33
    {
34
        if ($resourceClass !== Translation::class) {
35
            throw new BadConfigurationException(__CLASS__ . ' only works with Translation');
36
        }
37
        return new Translation($id, $this->translator->get($id, [], $this->application->getLocale()), new Locale($this->application->getLocale()));
0 ignored issues
show
Bug introduced by
It seems like $this->translator->get($...plication->getLocale()) can also be of type array and null; however, parameter $translation of W2w\Laravel\Apie\Plugins...nslation::__construct() does only seem to accept string, maybe add an additional type check? ( Ignorable by Annotation )

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

37
        return new Translation($id, /** @scrutinizer ignore-type */ $this->translator->get($id, [], $this->application->getLocale()), new Locale($this->application->getLocale()));
Loading history...
38
    }
39
40
    public function retrieveAll(string $resourceClass, array $context, SearchFilterRequest $searchFilterRequest
41
    ): iterable {
42
        throw new MethodNotAllowedException('GET');
43
    }
44
}
45