Files
FACULTATE-KNOW_YOUR_FOOD/knowyourfood/controllers/AuthController.php
T

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);
}
}