Completed
Push — master ( b6f3d7...bfda35 )
by Tomas
04:37
created

DeviceSessionResolver::resolve()   B

Complexity

Conditions 1
Paths 1

Size

Total Lines 24
Code Lines 21

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 24
rs 8.9713
c 0
b 0
f 0
cc 1
eloc 21
nc 1
nop 1
1
<?php
2
3
namespace OneSignal\Resolver;
4
5
use Symfony\Component\OptionsResolver\OptionsResolver;
6
7
class DeviceSessionResolver implements ResolverInterface
8
{
9
    /**
10
     * {@inheritdoc}
11
     */
12
    public function resolve(array $data)
13
    {
14
        return (new OptionsResolver())
15
            ->setDefined('identifier')
16
            ->setAllowedTypes('identifier', 'string')
17
            ->setDefined('language')
18
            ->setAllowedTypes('language', 'string')
19
            ->setDefined('timezone')
20
            ->setAllowedTypes('timezone', 'int')
21
            ->setDefined('game_version')
22
            ->setAllowedTypes('game_version', 'string')
23
            ->setDefined('device_os')
24
            ->setAllowedTypes('device_os', 'string')
25
            // @todo: remove "device_model" later (this option is probably deprecated as it is removed from documentation)
26
            ->setDefined('device_model')
27
            ->setAllowedTypes('device_model', 'string')
28
            ->setDefined('ad_id')
29
            ->setAllowedTypes('ad_id', 'string')
30
            ->setDefined('sdk')
31
            ->setAllowedTypes('sdk', 'string')
32
            ->setDefined('tags')
33
            ->setAllowedTypes('tags', 'array')
34
            ->resolve($data);
35
    }
36
}
37