DevicePurchaseResolver   A
last analyzed

Complexity

Total Complexity 2

Size/Duplication

Total Lines 26
Duplicated Lines 0 %

Importance

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

1 Method

Rating   Name   Duplication   Size   Complexity  
A resolve() 0 21 2
1
<?php
2
3
namespace vasadibt\onesignal\resolver;
4
5
use Symfony\Component\OptionsResolver\OptionsResolver;
6
use yii\base\BaseObject;
0 ignored issues
show
Bug introduced by
The type yii\base\BaseObject was not found. Maybe you did not declare it correctly or list all dependencies?

The issue could also be caused by a filter entry in the build configuration. If the path has been excluded in your configuration, e.g. excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:

filter:
    dependency_paths: ["lib/*"]

For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths

Loading history...
7
8
/**
9
 * Class DevicePurchaseResolver
10
 * @package vasadibt\onesignal\resolver
11
 */
12
class DevicePurchaseResolver extends BaseObject implements ResolverInterface
13
{
14
    /**
15
     * {@inheritdoc}
16
     */
17
    public function resolve(array $data)
18
    {
19
        $data = (new OptionsResolver())
20
            ->setDefined('existing')
21
            ->setAllowedTypes('existing', 'bool')
22
            ->setRequired('purchases')
23
            ->setAllowedTypes('purchases', 'array')
24
            ->resolve($data);
25
26
        foreach ($data['purchases'] as $key => $purchase) {
27
            $data['purchases'][$key] = (new OptionsResolver())
28
                ->setRequired('sku')
29
                ->setAllowedTypes('sku', 'string')
30
                ->setRequired('amount')
31
                ->setAllowedTypes('amount', 'float')
32
                ->setRequired('iso')
33
                ->setAllowedTypes('iso', 'string')
34
                ->resolve($purchase);
35
        }
36
37
        return $data;
38
    }
39
}
40