new: [authentication apis]add classes required for login API #2

This commit is contained in:
weichien00
2021-06-26 02:46:08 +08:00
parent 9821c0e306
commit 287e72e714
3 changed files with 68 additions and 0 deletions
@@ -0,0 +1,46 @@
<?php
namespace App\Classes\Modules\Accounts\ControllersLogic;
use App\Classes\Modules\Accounts\Processors\AuthenticationProcessor;
use App\Classes\General\Abstracts\AbstractControllerLogic;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
class AuthenticateUserLogic extends AbstractControllerLogic
{
protected function notification():array {
return [
'title' => 'Authentication',
'message' => 'You have successfully logged in to your account'
];
}
/** @var AuthenticationProcessor */
private $authenticationProcessor;
/**
* AuthenticateUserLogic constructor.
* @param AuthenticationProcessor $authenticationProcessor
*/
public function __construct(AuthenticationProcessor $authenticationProcessor)
{
$this->authenticationProcessor = $authenticationProcessor;
}
/**
* @param Request $request
* @return JsonResponse
* @throws \App\Classes\Exceptions\AccessForbiddenException
* @throws \App\Classes\Exceptions\AccessUnauthorisedException
* @throws \App\Classes\Exceptions\InternalServerErrorException
* @throws \App\Classes\Exceptions\RequestValidationException
*/
protected function logic(Request $request): JsonResponse {
return $this->response($this->authenticationProcessor->execute($request));
}
}
@@ -0,0 +1,21 @@
<?php
namespace App\Http\Controllers\Accounts;
use App\Classes\Modules\Accounts\ControllersLogic\AuthenticateUserLogic;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
class UserAuthenticationController
{
/**
* @param Request $request
* @param AuthenticateUserLogic $logic
* @return JsonResponse
*/
public function authenticate(Request $request, AuthenticateUserLogic $logic): JsonResponse {
return $logic->execute($request);
}
}
+1
View File
@@ -10,6 +10,7 @@ Route::group(['prefix' => 'account', 'namespace' => 'Accounts', 'as' => 'account
Route::group(['prefix' => 'authentication', 'as' => 'authentication.'], function () {
Route::group(['prefix' => 'login', 'as' => 'authenticate.'], function () {
Route::post('/attempt', 'UserAuthenticationController@authenticate')->name('attempt');
Route::post('/check_email', 'CheckEmailController@check')->name('email.check');
});
});