HoshiAI-be/routes/api.php
2025-11-12 23:04:55 +01:00

82 lines
3.5 KiB
PHP

<?php
use App\Http\Controllers\AuthController;
use App\Http\Controllers\CategoryController;
use App\Http\Controllers\HitcountController;
use App\Http\Controllers\LogController;
use App\Http\Controllers\QuestionController;
use App\Http\Controllers\TestController;
use App\Http\Controllers\UserController;
use App\Http\Controllers\UserTestController;
use Illuminate\Support\Facades\Route;
// UserTests
Route::middleware('auth:sanctum')->group(function () {
Route::get('user-tests', [UserTestController::class, 'index']);
Route::post('user-tests', [UserTestController::class, 'store']);
Route::post('user-tests/by-test', [UserTestController::class, 'storeByTest']);
Route::get('user-tests/{userTest}', [UserTestController::class, 'show']);
Route::post('user-tests/{userTest}/complete', [UserTestController::class, 'completeTest']);
Route::delete('user-tests/{userTest}', [UserTestController::class, 'destroy']);
});
// UserTestAnswers
Route::middleware('auth:sanctum')->group(function () {
Route::get('user-test-answers/{answer}', [UserTestController::class, 'showAnswer']);
Route::post('user-test-answers/{answer}/submit', [UserTestController::class, 'answerByTest']);
});
// Tests
Route::get('tests', [TestController::class, 'index']);
Route::get('tests/{test}', [TestController::class, 'show']);
Route::middleware('auth:sanctum')->group(function () {
Route::post('tests', [TestController::class, 'store']);
Route::put('tests/{test}', [TestController::class, 'update']);
Route::delete('tests/{test}', [TestController::class, 'destroy']);
});
// Questions
Route::get('questions', [QuestionController::class, 'index']);
Route::get('questions/{question}', [QuestionController::class, 'show']);
Route::middleware('auth:sanctum')->group(function () {
Route::post('questions', [QuestionController::class, 'store']);
Route::put('questions/{question}', [QuestionController::class, 'update']);
Route::delete('questions/{question}', [QuestionController::class, 'destroy']);
});
// HitcountController
Route::post('hit', [HitcountController::class, 'callHit']);
Route::apiResource('hitcounts', HitcountController::class)->middleware('auth:sanctum');
// UserController
Route::apiResource('users', UserController::class)->middleware('auth:sanctum');
// CategoryController
Route::get('categories', [CategoryController::class, 'index']);
Route::get('categories/{category}', [CategoryController::class, 'show']);
Route::middleware('auth:sanctum')->group(function () {
Route::post('categories', [CategoryController::class, 'store']);
Route::put('categories/{category}', [CategoryController::class, 'update']);
Route::delete('categories/{category}', [CategoryController::class, 'destroy']);
});
// LogsController
Route::apiResource('logs', LogController::class)
->only(['index', 'show', 'destroy'])->middleware('auth:sanctum');
// AuthController
Route::post('/auth/register', [ AuthController::class, 'register' ]);
Route::post('/auth/login', [ AuthController::class, 'login' ]);
Route::post('/auth/logout', [ AuthController::class, 'logout' ])->middleware('auth:sanctum');
Route::post('/auth/forgot-password', [ AuthController::class, 'forgotPassword' ]);
Route::post('/auth/reset-password', [ AuthController::class, 'resetPassword' ]);
Route::post('/auth/activate-account', [ AuthController::class, 'confirmationAccount' ]);
Route::middleware('auth:sanctum')->group(function () {
Route::post('/auth/logout', [ AuthController::class, 'logout' ]);
Route::get('/auth/me', [ AuthController::class, 'me' ])->middleware('auth:sanctum');
});