Completed
Push — master ( 4cd582...789244 )
by Freek
01:51
created

EmailListSubscriptionRule   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 26
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 1

Importance

Changes 0
Metric Value
wmc 3
lcom 1
cbo 1
dl 0
loc 26
rs 10
c 0
b 0
f 0

3 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 4 1
A passes() 0 6 1
A message() 0 6 1
1
<?php
2
3
namespace Spatie\EmailCampaigns\Rules;
4
5
use Illuminate\Contracts\Validation\Rule;
6
use Spatie\EmailCampaigns\Enums\SubscriptionStatus;
7
use Spatie\EmailCampaigns\Models\EmailList;
8
9
class EmailListSubscriptionRule implements Rule
10
{
11
    /** @var \Spatie\EmailCampaigns\Models\EmailList */
12
    protected $emailList;
13
14
    /** @var string */
15
    protected $attribute;
16
17
    public function __construct(EmailList $emailList)
18
    {
19
        $this->emailList = $emailList;
20
    }
21
22
    public function passes($attribute, $value)
23
    {
24
        $this->attribute = $attribute;
25
26
        return $this->emailList->getSubscriptionStatus($value) !== SubscriptionStatus::SUBSCRIBED;
27
    }
28
29
    public function message()
30
    {
31
        return __('email-campaigns::messages.email_list_email', [
32
            'attribute' => $this->attribute,
33
        ]);
34
}}
35