AppResolver::resolve()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 50

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 50
rs 9.0909
c 0
b 0
f 0
cc 1
nc 1
nop 1
1
<?php
2
3
declare(strict_types=1);
4
5
namespace OneSignal\Resolver;
6
7
use Symfony\Component\OptionsResolver\OptionsResolver;
8
9
class AppResolver implements ResolverInterface
10
{
11
    /**
12
     * {@inheritdoc}
13
     */
14
    public function resolve(array $data): array
15
    {
16
        return (new OptionsResolver())
17
            ->setRequired('name')
18
            ->setAllowedTypes('name', 'string')
19
            ->setDefined('apns_env')
20
            ->setAllowedTypes('apns_env', 'string')
21
            ->setAllowedValues('apns_env', ['sandbox', 'production'])
22
            ->setDefined('apns_p12')
23
            ->setAllowedTypes('apns_p12', 'string')
24
            ->setDefined('apns_p12_password')
25
            ->setAllowedTypes('apns_p12_password', 'string')
26
            ->setDefined('gcm_key')
27
            ->setAllowedTypes('gcm_key', 'string')
28
            ->setDefined('android_gcm_sender_id')
29
            ->setAllowedTypes('android_gcm_sender_id', 'string')
30
            ->setDefined('chrome_key')
31
            ->setAllowedTypes('chrome_key', 'string')
32
            ->setDefined('safari_apns_p12')
33
            ->setAllowedTypes('safari_apns_p12', 'string')
34
            ->setDefined('chrome_web_key')
35
            ->setAllowedTypes('chrome_web_key', 'string')
36
            ->setDefined('safari_apns_p12_password')
37
            ->setAllowedTypes('safari_apns_p12_password', 'string')
38
            ->setDefined('site_name')
39
            ->setAllowedTypes('site_name', 'string')
40
            ->setDefined('safari_site_origin')
41
            ->setAllowedTypes('safari_site_origin', 'string')
42
            ->setDefined('safari_icon_16_16')
43
            ->setAllowedTypes('safari_icon_16_16', 'string')
44
            ->setDefined('safari_icon_32_32')
45
            ->setAllowedTypes('safari_icon_32_32', 'string')
46
            ->setDefined('safari_icon_64_64')
47
            ->setAllowedTypes('safari_icon_64_64', 'string')
48
            ->setDefined('safari_icon_128_128')
49
            ->setAllowedTypes('safari_icon_128_128', 'string')
50
            ->setDefined('safari_icon_256_256')
51
            ->setAllowedTypes('safari_icon_256_256', 'string')
52
            ->setDefined('chrome_web_origin')
53
            ->setAllowedTypes('chrome_web_origin', 'string')
54
            ->setDefined('chrome_web_gcm_sender_id')
55
            ->setAllowedTypes('chrome_web_gcm_sender_id', 'string')
56
            ->setDefined('chrome_web_default_notification_icon')
57
            ->setAllowedTypes('chrome_web_default_notification_icon', 'string')
58
            ->setDefined('chrome_web_sub_domain')
59
            ->setAllowedTypes('chrome_web_sub_domain', 'string')
60
            ->setDefined('organization_id')
61
            ->setAllowedTypes('organization_id', 'string')
62
            ->resolve($data);
63
    }
64
}
65