| @@ 15-70 (lines=56) @@ | ||
| 12 | * |
|
| 13 | * @author Mahmoud Zalt <[email protected]> |
|
| 14 | */ |
|
| 15 | class SetUserEmailAction extends Action |
|
| 16 | { |
|
| 17 | ||
| 18 | /** |
|
| 19 | * @var \App\Containers\Email\Services\SetUserEmailService |
|
| 20 | */ |
|
| 21 | private $setUserEmailService; |
|
| 22 | ||
| 23 | /** |
|
| 24 | * @var \App\Containers\Email\Services\GenerateEmailConfirmationUrlService |
|
| 25 | */ |
|
| 26 | private $generateEmailConfirmationUrlService; |
|
| 27 | ||
| 28 | /** |
|
| 29 | * @var \App\Containers\Email\Services\SendConfirmationEmailService |
|
| 30 | */ |
|
| 31 | private $sendConfirmationEmailService; |
|
| 32 | ||
| 33 | /** |
|
| 34 | * SetUserEmailAction constructor. |
|
| 35 | * |
|
| 36 | * @param \App\Containers\Email\Services\SetUserEmailService $setUserEmailService |
|
| 37 | * @param \App\Containers\Email\Services\GenerateEmailConfirmationUrlService $generateEmailConfirmationUrlService |
|
| 38 | * @param \App\Containers\Email\Services\SendConfirmationEmailService $sendConfirmationEmailService |
|
| 39 | */ |
|
| 40 | public function __construct( |
|
| 41 | SetUserEmailService $setUserEmailService, |
|
| 42 | GenerateEmailConfirmationUrlService $generateEmailConfirmationUrlService, |
|
| 43 | SendConfirmationEmailService $sendConfirmationEmailService |
|
| 44 | ) { |
|
| 45 | $this->setUserEmailService = $setUserEmailService; |
|
| 46 | $this->generateEmailConfirmationUrlService = $generateEmailConfirmationUrlService; |
|
| 47 | $this->sendConfirmationEmailService = $sendConfirmationEmailService; |
|
| 48 | } |
|
| 49 | ||
| 50 | ||
| 51 | /** |
|
| 52 | * @param $userId |
|
| 53 | * @param $email |
|
| 54 | * |
|
| 55 | * @return bool |
|
| 56 | */ |
|
| 57 | public function run($userId, $email) |
|
| 58 | { |
|
| 59 | // set the email on the user in the database |
|
| 60 | $user = $this->setUserEmailService->run($userId, $email); |
|
| 61 | ||
| 62 | // generate confirmation code, store it on the memory and inject it in url |
|
| 63 | $confirmationUrl = $this->generateEmailConfirmationUrlService->run($user); |
|
| 64 | ||
| 65 | // send a confirmation email to the user with the link |
|
| 66 | $this->sendConfirmationEmailService->run($user, $confirmationUrl); |
|
| 67 | ||
| 68 | return true; |
|
| 69 | } |
|
| 70 | } |
|
| 71 | ||
| @@ 16-74 (lines=59) @@ | ||
| 13 | * |
|
| 14 | * @author Mahmoud Zalt <[email protected]> |
|
| 15 | */ |
|
| 16 | class SetVisitorEmailAction extends Action |
|
| 17 | { |
|
| 18 | ||
| 19 | /** |
|
| 20 | * @var \App\Containers\Email\Services\SetUserEmailService |
|
| 21 | */ |
|
| 22 | private $setUserEmailService; |
|
| 23 | ||
| 24 | /** |
|
| 25 | * @var \App\Containers\Email\Services\GenerateEmailConfirmationUrlService |
|
| 26 | */ |
|
| 27 | private $generateEmailConfirmationUrlService; |
|
| 28 | ||
| 29 | /** |
|
| 30 | * @var \App\Containers\Email\Services\SendConfirmationEmailService |
|
| 31 | */ |
|
| 32 | private $sendConfirmationEmailService; |
|
| 33 | ||
| 34 | /** |
|
| 35 | * @var \App\Containers\User\Services\FindUserService |
|
| 36 | */ |
|
| 37 | private $findUserService; |
|
| 38 | ||
| 39 | /** |
|
| 40 | * SetUserEmailAction constructor. |
|
| 41 | * |
|
| 42 | * @param \App\Containers\Email\Services\SetUserEmailService $setUserEmailService |
|
| 43 | * @param \App\Containers\Email\Services\GenerateEmailConfirmationUrlService $generateEmailConfirmationUrlService |
|
| 44 | * @param \App\Containers\Email\Services\SendConfirmationEmailService $sendConfirmationEmailService |
|
| 45 | * @param \App\Containers\User\Services\FindUserService $findUserService |
|
| 46 | */ |
|
| 47 | public function __construct( |
|
| 48 | SetUserEmailService $setUserEmailService, |
|
| 49 | GenerateEmailConfirmationUrlService $generateEmailConfirmationUrlService, |
|
| 50 | SendConfirmationEmailService $sendConfirmationEmailService, |
|
| 51 | FindUserService $findUserService |
|
| 52 | ) { |
|
| 53 | $this->setUserEmailService = $setUserEmailService; |
|
| 54 | $this->generateEmailConfirmationUrlService = $generateEmailConfirmationUrlService; |
|
| 55 | $this->sendConfirmationEmailService = $sendConfirmationEmailService; |
|
| 56 | $this->findUserService = $findUserService; |
|
| 57 | } |
|
| 58 | ||
| 59 | ||
| 60 | /** |
|
| 61 | * @param $userId |
|
| 62 | * @param $email |
|
| 63 | * |
|
| 64 | * @return bool |
|
| 65 | */ |
|
| 66 | public function run($visitorId, $email) |
|
| 67 | { |
|
| 68 | $user = $this->findUserService->byVisitorId($visitorId); |
|
| 69 | ||
| 70 | $this->setUserEmailService->run($user->id, $email); |
|
| 71 | ||
| 72 | return true; |
|
| 73 | } |
|
| 74 | } |
|
| 75 | ||