88 lines
2.9 KiB
PHP
Executable File
88 lines
2.9 KiB
PHP
Executable File
<?php
|
|
|
|
namespace app\controllers;
|
|
use app\core\Application;
|
|
use app\core\Controller;
|
|
use app\core\Request;
|
|
use app\models\LoginModel;
|
|
use app\core\Model;
|
|
use app\models\RegisterModel;
|
|
|
|
class AuthController extends Controller{
|
|
public function __construct(){
|
|
}
|
|
|
|
public static function loginPage(Request $request): string
|
|
{
|
|
$model = new LoginModel();
|
|
|
|
if($request->isPost()){
|
|
$model->loadData($request->getPOSTBody());
|
|
$model->checkForErrors();
|
|
|
|
if($model->hasErrors()){
|
|
self::setControllerParams("Login", "Login", "Auth", $model);
|
|
return Application::$app->controller->render();
|
|
}
|
|
$model->removeErrors();
|
|
|
|
$body = $model->createBody();
|
|
$headers = $model->createHeaders(json_encode($body));
|
|
|
|
$model->setParametersForRequest("GET", $headers, $body);
|
|
|
|
$model->execute();
|
|
if($model->isRequestFulfilled()){
|
|
//Application::$app->response->redirect("homepage");
|
|
}
|
|
|
|
$model->setRequestError();
|
|
self::setControllerParams("Login", "Login", "Auth", $model);
|
|
return Application::$app->controller->render();
|
|
}
|
|
|
|
self::setControllerParams("Login", "Login", "Auth", $model);
|
|
return Application::$app->controller->render();
|
|
}
|
|
|
|
public static function registerPage(Request $request): string
|
|
{
|
|
$model = new RegisterModel();
|
|
|
|
if($request->isPost()){
|
|
$model->loadData($request->getPOSTBody());
|
|
$model->checkForErrors();
|
|
|
|
if($model->hasErrors()){
|
|
self::setControllerParams("Register", "Register", "Auth", $model);
|
|
return Application::$app->controller->render();
|
|
}
|
|
$model->removeErrors();
|
|
|
|
$body = $model->createBody();
|
|
$headers = $model->createHeaders(json_encode($body));
|
|
|
|
$model->setParametersForRequest("PUT", $headers, $body);
|
|
|
|
$model->execute();
|
|
if($model->isRequestFulfilled()){
|
|
Application::$app->response->redirect("login");
|
|
}
|
|
|
|
$model->setRequestError();
|
|
self::setControllerParams("Register", "Register", "Auth", $model);
|
|
return Application::$app->controller->render();
|
|
}
|
|
|
|
self::setControllerParams("Register", "Register", "Auth", $model);
|
|
return Application::$app->controller->render();
|
|
}
|
|
|
|
public static function setControllerParams(string $title, string $view, string $layout, ?Model $model): void
|
|
{
|
|
Application::$app->controller->setLayout($layout);
|
|
Application::$app->controller->setModel($model);
|
|
Application::$app->controller->setTitle($title);
|
|
Application::$app->controller->setView($view);
|
|
}
|
|
} |