You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

61 lines
3.4KB

  1. <?php
  2. declare(strict_types=1);
  3. use App\Controllers\AdminController;
  4. use App\Controllers\AuthController;
  5. use App\Controllers\BoardsController;
  6. use App\Controllers\CardsController;
  7. use App\Controllers\ColumnsController;
  8. use App\Controllers\HomeController;
  9. use App\Controllers\SwimLanesController;
  10. // Home — redirects to /boards
  11. $router->get('/', [HomeController::class, 'index']);
  12. // Boards
  13. $router->get('/boards', [BoardsController::class, 'index']);
  14. $router->get('/boards/create', [BoardsController::class, 'create']);
  15. $router->post('/boards', [BoardsController::class, 'store']);
  16. $router->get('/board/{slug}', [BoardsController::class, 'show']);
  17. $router->get('/board/{slug}/edit', [BoardsController::class, 'edit']);
  18. $router->post('/board/{slug}/update', [BoardsController::class, 'update']);
  19. $router->post('/board/{slug}/delete', [BoardsController::class, 'destroy']);
  20. // Cards (JSON API)
  21. $router->post('/cards', [CardsController::class, 'store']);
  22. $router->post('/cards/{id}/move', [CardsController::class, 'move']);
  23. $router->post('/cards/{id}/delete', [CardsController::class, 'destroy']);
  24. $router->post('/cards/{id}', [CardsController::class, 'update']);
  25. // Columns (JSON API) — /columns/reorder MUST be before /columns/{id}
  26. $router->get('/columns/{id}/export', [ColumnsController::class, 'export']);
  27. $router->post('/columns/reorder', [ColumnsController::class, 'reorder']);
  28. $router->post('/columns/{id}/toggle-export', [ColumnsController::class, 'toggleExport']);
  29. $router->post('/columns/{id}/toggle-count', [ColumnsController::class, 'toggleCount']);
  30. $router->post('/columns/{id}/card-age-settings', [ColumnsController::class, 'updateCardAgeSettings']);
  31. $router->post('/columns/{id}/delete', [ColumnsController::class, 'destroy']);
  32. $router->post('/columns/{id}', [ColumnsController::class, 'update']);
  33. $router->post('/columns', [ColumnsController::class, 'store']);
  34. // Swim lanes (JSON API) — /swimlanes/reorder MUST be before /swimlanes/{id}
  35. $router->get('/swimlanes/{id}/export', [SwimLanesController::class, 'export']);
  36. $router->post('/swimlanes/reorder', [SwimLanesController::class, 'reorder']);
  37. $router->post('/swimlanes/{id}/toggle-count', [SwimLanesController::class, 'toggleCount']);
  38. $router->post('/swimlanes/{id}/toggle-export', [SwimLanesController::class, 'toggleExport']);
  39. $router->post('/swimlanes/{id}/card-age-settings', [SwimLanesController::class, 'updateCardAgeSettings']);
  40. $router->post('/swimlanes/{id}/delete', [SwimLanesController::class, 'destroy']);
  41. $router->post('/swimlanes/{id}', [SwimLanesController::class, 'update']);
  42. $router->post('/swimlanes', [SwimLanesController::class, 'store']);
  43. // Admin — /admin/cron/settings and /admin/cron/run must be before any param routes
  44. $router->get('/admin/cron', [AdminController::class, 'index']);
  45. $router->post('/admin/cron/settings', [AdminController::class, 'saveSettings']);
  46. $router->post('/admin/cron/run', [AdminController::class, 'runNow']);
  47. $router->post('/admin/cron/board/{id}/toggle', [AdminController::class, 'toggleBoard']);
  48. // Auth (Keycloak SSO)
  49. $router->get('/auth/login', [AuthController::class, 'login']);
  50. $router->get('/auth/callback', [AuthController::class, 'callback']);
  51. $router->get('/auth/logout', [AuthController::class, 'logout']);

Powered by TurnKey Linux.