diff --git a/app/Classes/Modules/Accounts/ControllersLogic/ResendEmailVerificationLogic.php b/app/Classes/Modules/Accounts/ControllersLogic/ResendEmailVerificationLogic.php new file mode 100644 index 00000000..1723b370 --- /dev/null +++ b/app/Classes/Modules/Accounts/ControllersLogic/ResendEmailVerificationLogic.php @@ -0,0 +1,51 @@ + 'Resend Verification Email', + 'message' => 'Successfully resent a new verification email' + ]; + } + + /** @var FetchesUser */ + private $fetchesUser; + + /** @var GenerateEmailVerificationAttemptProcessor */ + private $generateEmailVerificationAttemptProcessor; + + /** + * ResendEmailVerificationLogic constructor. + * @param FetchesUser $fetchesUser + * @param GenerateEmailVerificationAttemptProcessor $generateEmailVerificationAttemptProcessor + */ + public function __construct(FetchesUser $fetchesUser, GenerateEmailVerificationAttemptProcessor $generateEmailVerificationAttemptProcessor) + { + $this->fetchesUser = $fetchesUser; + $this->generateEmailVerificationAttemptProcessor = $generateEmailVerificationAttemptProcessor; + } + + public function logic(Request $request) : JsonResponse { + + /** @var User $user */ + $user = $this->fetchesUser->execute(['id' => $request->input('user_id')]); + + $this->generateEmailVerificationAttemptProcessor->execute($user); + + return $this->response([]); + + } + +} \ No newline at end of file diff --git a/app/Http/Controllers/Accounts/ResendEmailVerificationController.php b/app/Http/Controllers/Accounts/ResendEmailVerificationController.php new file mode 100644 index 00000000..224e794d --- /dev/null +++ b/app/Http/Controllers/Accounts/ResendEmailVerificationController.php @@ -0,0 +1,20 @@ +execute($request); + } +} \ No newline at end of file diff --git a/routes/account.php b/routes/account.php index ab30988a..bc4941aa 100644 --- a/routes/account.php +++ b/routes/account.php @@ -27,5 +27,6 @@ Route::group(['prefix' => 'account', 'namespace' => 'Accounts', 'as' => 'account Route::group(['prefix' => 'email', 'as' => 'email.'], function () { Route::post('/verify', 'UserEmailVerificationController@verify')->name('verify'); + Route::post('/verification/resend', 'ResendEmailVerificationController@resend')->name('verification.resend'); }); });