12-05-2026 Frontend dev
Some checks are pending
linter / quality (push) Waiting to run
tests / ci (push) Waiting to run

This commit is contained in:
Kevin Adametz 2026-05-12 18:32:33 +02:00
parent 405df0a122
commit 5b8bdf4182
779 changed files with 480564 additions and 6241 deletions

View file

@ -1,58 +1,27 @@
<?php
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use App\Http\Controllers\Api\V1\CategoryController;
use App\Http\Controllers\Api\V1\CompanyController;
use App\Http\Controllers\Api\V1\NewsletterSubscriptionController;
use App\Http\Controllers\Api\V1\PressReleaseController;
use App\Http\Controllers\Api\V1\PressReleaseImageController;
use App\Http\Middleware\EnsureApiTokenRateLimit;
use App\Http\Middleware\EnsureApiUserIsActive;
use Illuminate\Support\Facades\Route;
/*
|--------------------------------------------------------------------------
| API Routes
|--------------------------------------------------------------------------
|
| Here is where you can register API routes for your application. These
| routes are loaded by the RouteServiceProvider and all of them will
| be assigned to the "api" middleware group. Make something great!
|
*/
Route::middleware('auth:sanctum')->get('/user', function (Request $request) {
return $request->user();
});
// Geschützte API-Routen
Route::middleware('auth:sanctum')->group(function () {
// Beispiel-API-Route
Route::get('/profile', function (Request $request) {
return response()->json([
'user' => $request->user(),
'message' => 'Profil erfolgreich abgerufen'
]);
Route::prefix('v1')
->middleware(['auth:sanctum', EnsureApiUserIsActive::class, EnsureApiTokenRateLimit::class])
->group(function (): void {
Route::apiResource('press-releases', PressReleaseController::class)
->parameters(['press-releases' => 'pressRelease']);
Route::get('press-releases/{pressRelease}/images', [PressReleaseImageController::class, 'index'])
->name('press-releases.images.index');
Route::post('press-releases/{pressRelease}/images', [PressReleaseImageController::class, 'store'])
->name('press-releases.images.store');
Route::delete('press-release-images/{pressReleaseImage}', [PressReleaseImageController::class, 'destroy'])
->name('press-release-images.destroy');
Route::apiResource('companies', CompanyController::class)->only(['index', 'show']);
Route::get('categories', [CategoryController::class, 'index'])->name('categories.index');
Route::post('newsletter/subscribe', [NewsletterSubscriptionController::class, 'store'])
->name('newsletter.subscribe');
});
// Token-Erstellung (bereits durch Sanctum bereitgestellt)
// POST /api/tokens/create
// POST /api/tokens/revoke
});
// Öffentliche API-Routen
Route::post('/login', function (Request $request) {
$credentials = $request->validate([
'email' => 'required|email',
'password' => 'required',
]);
if (Auth::attempt($credentials)) {
$user = Auth::user();
$token = $user->createToken('api-token')->plainTextToken;
return response()->json([
'token' => $token,
'user' => $user,
'message' => 'Erfolgreich angemeldet'
]);
}
return response()->json([
'message' => 'Ungültige Anmeldedaten'
], 401);
});