BeginResetProcessCommandHandler.php 1.28 KB
Newer Older
1 2 3 4 5 6
<?php namespace Modules\User\Commands;

use Illuminate\Support\Facades\Event;
use Laracasts\Commander\CommandHandler;
use Modules\User\Events\UserHasBegunResetProcess;
use Modules\User\Exceptions\UserNotFoundException;
7 8
use Modules\User\Repositories\AuthenticationRepository;
use Modules\User\Repositories\UserRepository;
9 10 11

class BeginResetProcessCommandHandler implements CommandHandler
{
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
    /**
     * @var UserRepository
     */
    private $user;
    /**
     * @var AuthenticationRepository
     */
    private $auth;

    public function __construct(UserRepository $user, AuthenticationRepository $auth)
    {
        $this->user = $user;
        $this->auth = $auth;
    }

27 28 29 30 31 32 33 34 35 36 37
    /**
     * Handle the command
     *
     * @param $command
     * @throws UserNotFoundException
     * @return mixed
     */
    public function handle($command)
    {
        $user = $this->findUser((array) $command);

38
        $code = $this->auth->createReminderCode($user);
39

40
        Event::fire('Modules.User.Events.UserHasBegunResetProcess', new UserHasBegunResetProcess($user, $code));
41 42 43 44
    }

    private function findUser($credentials)
    {
45
        $user = $this->user->findByCredentials((array) $credentials);
46 47 48 49 50 51
        if ($user) {
            return $user;
        }

        throw new UserNotFoundException();
    }
52
}