EmailVerificationController::send()   A
last analyzed

Complexity

Conditions 3
Paths 3

Size

Total Lines 22

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 22
rs 9.568
c 0
b 0
f 0
cc 3
nc 3
nop 1
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Cortex\Auth\Http\Controllers\Frontarea;
6
7
use Cortex\Foundation\Http\Controllers\AbstractController;
8
use Rinvex\Auth\Contracts\EmailVerificationBrokerContract;
9
use Cortex\Auth\Http\Requests\Frontarea\EmailVerificationRequest;
10
use Cortex\Auth\Http\Requests\Frontarea\EmailVerificationSendRequest;
11
use Cortex\Auth\Http\Requests\Frontarea\EmailVerificationProcessRequest;
12
13
class EmailVerificationController extends AbstractController
14
{
15
    /**
16
     * Show the email verification request form.
17
     *
18
     * @param \Cortex\Auth\Http\Requests\Frontarea\EmailVerificationRequest $request
19
     *
20
     * @return \Illuminate\View\View
21
     */
22
    public function request(EmailVerificationRequest $request)
0 ignored issues
show
Unused Code introduced by
The parameter $request is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
23
    {
24
        return view('cortex/auth::frontarea.pages.verification-email-request');
25
    }
26
27
    /**
28
     * Process the email verification request form.
29
     *
30
     * @param \Cortex\Auth\Http\Requests\Frontarea\EmailVerificationSendRequest $request
31
     *
32
     * @return \Illuminate\Http\JsonResponse|\Illuminate\Http\RedirectResponse
33
     */
34
    public function send(EmailVerificationSendRequest $request)
35
    {
36
        $result = app('rinvex.auth.emailverification')
37
            ->broker($this->getEmailVerificationBroker())
38
            ->sendVerificationLink($request->only(['email']));
39
40
        switch ($result) {
41
            case EmailVerificationBrokerContract::LINK_SENT:
42
                return intend([
43
                    'url' => route('frontarea.home'),
44
                    'with' => ['success' => trans('cortex/auth::'.$result)],
45
                ]);
46
47
            case EmailVerificationBrokerContract::INVALID_USER:
48
            default:
49
                return intend([
50
                    'back' => true,
51
                    'withInput' => $request->only(['email']),
52
                    'withErrors' => ['email' => trans('cortex/auth::'.$result)],
53
                ]);
54
        }
55
    }
56
57
    /**
58
     * Process the email verification.
59
     *
60
     * @param \Cortex\Auth\Http\Requests\Frontarea\EmailVerificationProcessRequest $request
61
     *
62
     * @return \Illuminate\Http\JsonResponse|\Illuminate\Http\RedirectResponse
63
     */
64
    public function verify(EmailVerificationProcessRequest $request)
65
    {
66
        $result = app('rinvex.auth.emailverification')
67
            ->broker($this->getEmailVerificationBroker())
68
            ->verify($request->only(['email', 'expiration', 'token']), function ($user) {
69
                $user->fill([
70
                    'email_verified_at' => now(),
71
                ])->forceSave();
72
            });
73
74
        switch ($result) {
75
            case EmailVerificationBrokerContract::EMAIL_VERIFIED:
76
                return intend([
77
                    'url' => route('frontarea.account.settings'),
78
                    'with' => ['success' => trans('cortex/auth::'.$result)],
79
                ]);
80
81
            case EmailVerificationBrokerContract::INVALID_USER:
82
            case EmailVerificationBrokerContract::INVALID_TOKEN:
83
            case EmailVerificationBrokerContract::EXPIRED_TOKEN:
84
            default:
85
                return intend([
86
                    'url' => route('frontarea.verification.email.request'),
87
                    'withInput' => $request->only(['email']),
88
                    'withErrors' => ['email' => trans('cortex/auth::'.$result)],
89
                ]);
90
        }
91
    }
92
}
93