Completed
Push — master ( f88a68...43a16c )
by Zbigniew
02:33
created

AbstractResponseTransformer::getModelClasses()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 9
Code Lines 6

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 2
CRAP Score 1

Importance

Changes 0
Metric Value
dl 0
loc 9
ccs 2
cts 2
cp 1
rs 9.6666
c 0
b 0
f 0
cc 1
eloc 6
nc 1
nop 0
crap 1
1
<?php
2
/**
3
 * This file is part of the WrikePhpJmsserializer package.
4
 *
5
 * (c) Zbigniew Ślązak
6
 *
7
 * For the full copyright and license information, please view the LICENSE
8
 * file that was distributed with this source code.
9
 */
10
11
namespace Zibios\WrikePhpJmsserializer\Transformer;
12
13
use JMS\Serializer\SerializerInterface;
14
use Zibios\WrikePhpJmsserializer\Model\Contact\ContactResponseModel;
15
use Zibios\WrikePhpJmsserializer\Model\Group\GroupResponseModel;
16
use Zibios\WrikePhpJmsserializer\Model\Invitation\InvitationResponseModel;
17
use Zibios\WrikePhpJmsserializer\Model\User\UserResponseModel;
18
use Zibios\WrikePhpLibrary\Resource\ContactResource;
19
use Zibios\WrikePhpLibrary\Resource\GroupResource;
20
use Zibios\WrikePhpLibrary\Resource\InvitationResource;
21
use Zibios\WrikePhpLibrary\Resource\UserResource;
22
use Zibios\WrikePhpLibrary\Transformer\AbstractResponseTransformer as BaseAbstractResponseTransformer;
23
24
/**
25
 * Response Transformer Abstract
26
 */
27
abstract class AbstractResponseTransformer extends BaseAbstractResponseTransformer
28
{
29
    /**
30
     * @var SerializerInterface
31
     */
32
    protected $serializer;
33
34
    /**
35
     * AbstractResponseTransformer constructor.
36
     *
37
     * @param SerializerInterface $serializer
38
     */
39 18
    public function __construct(SerializerInterface $serializer) {
40 18
        $this->serializer = $serializer;
41 18
    }
42
43
    /**
44
     * @return array
45
     */
46 14
    protected function getModelClasses()
47
    {
48
        return [
49 14
            ContactResource::class => ContactResponseModel::class,
50
            UserResource::class => UserResponseModel::class,
51
            GroupResource::class => GroupResponseModel::class,
52
            InvitationResource::class => InvitationResponseModel::class,
53
        ];
54
    }
55
56
    /**
57
     * @param string $resourceClass
58
     *
59
     * @return string
60
     * @throws \InvalidArgumentException
61
     */
62 14
    protected function getModelClassForResource($resourceClass)
63
    {
64 14
        if (array_key_exists($resourceClass, $this->getModelClasses()) === false) {
65 4
            throw new \InvalidArgumentException(sprintf('"%s" class not supported', $resourceClass));
66
        }
67
68 10
        return $this->getModelClasses()[$resourceClass];
69
    }
70
}
71