couldNotFindSubscriptionResponse()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 4
rs 10
c 0
b 0
f 0
cc 1
nc 1
nop 0
1
<?php
2
3
namespace Spatie\EmailCampaigns\Http\Controllers;
4
5
use Spatie\EmailCampaigns\Models\Subscription;
6
use Spatie\EmailCampaigns\Enums\SubscriptionStatus;
7
8
class ConfirmSubscriptionController
9
{
10
    public function __invoke(string $subscriptionUuid)
11
    {
12
        /** @var \Spatie\EmailCampaigns\Models\Subscription $subscription */
13
        $subscription = Subscription::findByUuid($subscriptionUuid);
14
15
        if (! $subscription) {
16
            return $this->couldNotFindSubscriptionResponse();
17
        }
18
19
        if ($subscription->status === SubscriptionStatus::SUBSCRIBED) {
20
            return $this->wasAlreadyConfirmedResponse($subscription);
21
        }
22
23
        $subscription->confirm();
24
25
        return $this->subscriptionConfirmedResponse($subscription);
26
    }
27
28
    public function subscriptionConfirmedResponse(Subscription $subscription)
29
    {
30
        return view('email-campaigns::confirmSubscription.confirmed', compact('subscription'));
31
    }
32
33
    public function wasAlreadyConfirmedResponse(Subscription $subscription)
34
    {
35
        return view('email-campaigns::confirmSubscription.wasAlreadyConfirmed', compact('subscription'));
36
    }
37
38
    public function couldNotFindSubscriptionResponse()
39
    {
40
        return view('email-campaigns::confirmSubscription.couldNotFindSubscription');
41
    }
42
}
43