Completed
Push — master ( 3f0650...a210b6 )
by Ryan
02:07
created

HandleActivateRequest::handle()   B

Complexity

Conditions 4
Paths 3

Size

Total Lines 22
Code Lines 14

Duplication

Lines 0
Ratio 0 %

Importance

Changes 2
Bugs 0 Features 0
Metric Value
c 2
b 0
f 0
dl 0
loc 22
rs 8.9197
cc 4
eloc 14
nc 3
nop 4
1
<?php namespace Anomaly\UsersModule\User\Register\Command;
2
3
use Anomaly\UsersModule\User\Contract\UserRepositoryInterface;
4
use Anomaly\UsersModule\User\UserActivator;
5
use Illuminate\Contracts\Bus\SelfHandling;
6
use Illuminate\Contracts\Encryption\Encrypter;
7
use Illuminate\Http\Request;
8
9
/**
10
 * Class HandleActivateRequest
11
 *
12
 * @link          http://anomaly.is/streams-platform
13
 * @author        AnomalyLabs, Inc. <[email protected]>
14
 * @author        Ryan Thompson <[email protected]>
15
 * @package       Anomaly\UsersModule\User\Register\Command
16
 */
17
class HandleActivateRequest implements SelfHandling
18
{
19
20
    /**
21
     * Handle the command.
22
     *
23
     * @param UserRepositoryInterface $users
24
     * @param UserActivator           $activator
25
     * @param Encrypter               $encrypter
26
     * @param Request                 $request
27
     * @return bool
28
     */
29
    public function handle(
30
        UserRepositoryInterface $users,
31
        UserActivator $activator,
32
        Encrypter $encrypter,
33
        Request $request
34
    ) {
35
        $code  = $request->get('code');
36
        $email = $request->get('email');
37
38
        if (!$code || !$email) {
39
            return false;
40
        }
41
42
        $code  = $encrypter->decrypt($code);
43
        $email = $encrypter->decrypt($email);
44
45
        if (!$user = $users->findByEmail($email)) {
46
            return false;
47
        }
48
49
        return $activator->activate($user, $code);
50
    }
51
}
52