12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. <?php
  2. use App\Http\Controllers\Api\EsgController;
  3. use App\Http\Controllers\Api\HistoryController;
  4. use App\Http\Controllers\Api\HomePageController;
  5. use App\Http\Controllers\Api\NewsController;
  6. use App\Http\Controllers\Api\ProfilePageController;
  7. use App\Http\Controllers\Api\ProjectController;
  8. use App\Http\Controllers\Api\AlbumController;
  9. use Illuminate\Http\Request;
  10. use Illuminate\Support\Facades\Route;
  11. Route::get('/user', function (Request $request) {
  12. return $request->user();
  13. })->middleware('auth:sanctum');
  14. Route::post('/post-test', function (Request $request) {
  15. return response()->json(['message' => 'Sample post test endpoint']);
  16. });
  17. Route::prefix('{locale}')->group(function (){
  18. Route::prefix('histories')->group(function (){
  19. Route::get('/', [HistoryController::class, 'list']);
  20. });
  21. Route::prefix('home')->group(function (){
  22. Route::get('/news', [HomePageController::class, 'list']);
  23. Route::get('/banners', [HomePageController::class, 'banners']);
  24. });
  25. Route::prefix('profile')->group(function () {
  26. Route::get('/', [ProfilePageController::class, 'list']);
  27. });
  28. Route::prefix('news')->group(function (){
  29. Route::get('/', [NewsController::class, 'list']);
  30. Route::get('/{id}', [NewsController::class, 'detail'])->whereIn('locale', ["tw", "en"])->where('id', '[0-9]+');
  31. });
  32. Route::prefix('project')->group(function () {
  33. Route::get('/', [ProjectController::class, 'list']);
  34. Route::get('/{id}', [ProjectController::class, 'detail'])->whereIn('locale', ["tw", "en"])->where('id', '[0-9]+');
  35. Route::get('/badges', [ProjectController::class, 'badges']);
  36. });
  37. Route::prefix('album')->group(function (){
  38. Route::get('/list', [AlbumController::class, 'list']);
  39. });
  40. Route::prefix("esg")->group(function () {
  41. Route::get("/histories", [EsgController::class, 'histories']);
  42. Route::get("/upload-files", [EsgController::class, "uploadFiles"]);
  43. });
  44. });