Request class and begin Frontend.

This commit is contained in:
2026-03-20 15:54:29 +01:00
parent 6c068443dc
commit 72108d4d03
18 changed files with 540 additions and 2 deletions

View File

@@ -0,0 +1,16 @@
<?php
namespace App\Domain\Recettes;
use App\Domain\Controller;
class RecettesAPIController extends Controller {
public static function defineRoutes(): array
{
return [
self::Route( routeUrl: '/api/recettes/list', routeName: 'api->recettes->list', routeAction: 'list', routeMethods: ['POST'] ),
];
}
}

View File

@@ -0,0 +1,24 @@
<?php
namespace App\Domain\Recettes;
use App\Domain\Controller;
use App\Http\JSONResponse;
use App\Infrastructure\View;
class RecettesController extends Controller {
public static function defineRoutes(): array
{
return [
self::Route( routeUrl: '/recettes', routeName: 'recettes->index', routeAction: 'index', pageHeadTitle: 'Liste des recettes' ),
self::Route( routeUrl: '/recettes/{string}', routeName: 'recettes->show', routeAction: 'show', pageHeadTitle: 'Recette' ),
];
}
public function index(): View {
return new View( 'recettes/index', [] );
}
}

View File

@@ -0,0 +1,17 @@
<?php
namespace App\Domain\Recettes;
use App\Domain\Controller;
class RecettesManagementController extends Controller {
public static function defineRoutes(): array
{
return [
self::Route( routeUrl: '/recettes/create', routeName: 'recettes->create', routeAction: 'create' ),
self::Route( routeUrl: '/recettes/edit/{int}', routeName: 'recettes->edit', routeAction: 'edit' ),
];
}
}

View File

@@ -0,0 +1,57 @@
<?php
namespace App\Domain\Utilisateurs;
use App\Domain\Controller;
use App\Helpers\Authentification;
use App\Http\JSONResponse;
use App\Http\Request;
class AuthentificationController extends Controller {
public static function defineRoutes(): array {
return [
// Public routes.
self::Route( routeUrl: '/login', routeName: 'login', routeAction: 'loginForm', pageHeadTitle: 'Connexion' ),
// API Routes.
self::Route( routeUrl: '/api/auth', routeName: 'api->auth', routeAction: 'auth', routeMethods: ['POST'] ),
self::Route( routeUrl: '/api/auth/logout', routeName: 'api->auth->logout', routeAction: 'logout', routeMethods: ['POST'] ),
];
}
public function login(): View {
return new View( 'login' );
}
public function auth(): JSONResponse {
Request::setCORS();
$username = Request::get( 'username' );
$password = Request::get( 'password' );
// TODO : Récupération de l'utilisateur et verify_password.
$userId = 1;
Authentification::loginUser( $userId );
JSONResponse::sendSuccess( [ 'user_id' => $userId ] );
}
public function logout(): JSONResponse {
if( !Authentification::isLoggedIn() ) {
return JSONResponse::sendError( [ 'message' => 'Alrady disconnected' ] );
}
Authentification::destroySession();
return JSONResponse::sendSuccess( [ 'message' => 'Logged out' ] );
}
}