Completed
Push — master ( e65557...9ab3fa )
by Mark
01:50
created

MemberTransformer::toFormParamsForUpdate()   A

Complexity

Conditions 4
Paths 8

Size

Total Lines 20
Code Lines 10

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
c 0
b 0
f 0
dl 0
loc 20
rs 9.2
cc 4
eloc 10
nc 8
nop 1
1
<?php
2
3
namespace Mrkj\Laposta\Transformers;
4
5
use Mrkj\Laposta\Models\Member;
6
7
class MemberTransformer
8
{
9
    /**
10
     * @param Member $member
11
     * @param bool $suppressEmailNotification
12
     * @param bool $suppressEmailWelcome
13
     * @param bool $ignoreDoubleOptin
14
     * @return array
15
     */
16
    public static function toFormParamsForCreate(
17
        Member $member,
18
        $suppressEmailNotification = false,
19
        $suppressEmailWelcome = false,
20
        $ignoreDoubleOptin = false
21
    ) : array {
22
        $formParams = [
23
            'list_id' => $member->listId,
24
            'ip' => $member->ip,
25
            'email' => $member->email,
26
        ];
27
28
        if ($member->sourceUrl) {
29
            $formParams['source_url'] = $member->sourceUrl;
30
        }
31
32
        if (count($member->getCustomFields()) > 0) {
33
            $formParams['custom_fields'] = $member->getCustomFields();
34
        }
35
36
        $options = [];
37
38
        if ($suppressEmailNotification) {
39
            $options['suppress_email_notification'] = true;
40
        }
41
42
        if ($suppressEmailWelcome) {
43
            $options['suppress_email_welcome'] = true;
44
        }
45
46
        if ($ignoreDoubleOptin) {
47
            $options['ignore_doubleoptin'] = true;
48
        }
49
50
        if (count($options) > 0) {
51
            $formParams['options'] = $options;
52
        }
53
54
        return $formParams;
55
    }
56
57
    /**
58
     * @param Member $member
59
     * @return array
60
     */
61
    public static function toFormParamsForUpdate(Member $member): array
62
    {
63
        $formParams = [
64
            'list_id' => $member->listId,
65
        ];
66
67
        if ($member->email) {
68
            $formParams['email'] = $member->email;
69
        }
70
71
        if ($member->state) {
72
            $formParams['state'] = $member->state;
73
        }
74
75
        if (count($member->getCustomFields()) > 0) {
76
            $formParams['custom_fields'] = $member->getCustomFields();
77
        }
78
79
        return $formParams;
80
    }
81
}
82