new:[authentication apis]add classes required for resend verification email API #2

This commit is contained in:
weichien00
2021-06-26 18:45:58 +08:00
parent ce4b45708d
commit 7beead2300
3 changed files with 72 additions and 0 deletions
@@ -0,0 +1,51 @@
<?php
namespace App\Classes\Modules\Accounts\ControllersLogic;
use App\Classes\General\Abstracts\AbstractControllerLogic;
use App\Classes\Modules\Accounts\Processors\GenerateEmailVerificationAttemptProcessor;
use App\Classes\Modules\Accounts\Services\FetchesUser;
use App\Models\User;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
class ResendEmailVerificationLogic extends AbstractControllerLogic
{
public function notification(): array
{
return [
'title' => '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([]);
}
}
@@ -0,0 +1,20 @@
<?php
namespace App\Http\Controllers\Accounts;
use App\Classes\Modules\Accounts\ControllersLogic\ResendEmailVerificationLogic;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
class ResendEmailVerificationController
{
/**
* @param Request $request
* @param ResendEmailVerificationLogic $logic
* @return JsonResponse
*/
public function resend(Request $request, ResendEmailVerificationLogic $logic): JsonResponse {
return $logic->execute($request);
}
}
+1
View File
@@ -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');
});
});