only(['index', 'show']); Route::apiResource('categories', CategoryController::class)->only(['index', 'show']); Route::apiResource('countries-wwl', CountryWwlController::class)->only(['index', 'show']); Route::apiResource('contests', ContestController::class)->only(['index', 'show']); Route::apiResource('contest-parameters', ContestParameterController::class)->only(['index', 'show']); Route::apiResource('cty', CtyController::class)->only(['index', 'show']); Route::apiResource('edi-bands', EdiBandController::class)->only(['index', 'show']); Route::apiResource('evaluation-rule-sets', EvaluationRuleSetController::class)->only(['index', 'show']); Route::apiResource('evaluation-runs', EvaluationRunController::class)->only(['index', 'show']); Route::apiResource('edi-categories', EdiCategoryController::class)->only(['index', 'show']); Route::apiResource('files', FileController::class)->only(['index','show','store']); Route::get('files/{file}/download', [FileController::class, 'download']); Route::get('files/{file}/content', [FileController::class, 'content']); Route::post('login', [LoginController::class, 'authenticate']); Route::apiResource('logs', LogController::class)->only(['index', 'show']); Route::get('logs/{log}/public', [LogController::class, 'publicShow']); Route::get('logs/{log}/qso-table', [LogController::class, 'qsoTable']); Route::apiResource('log-qsos', LogQsoController::class)->only(['index', 'show']); Route::apiResource('log-results', LogResultController::class)->only(['index', 'show']); Route::apiResource('log-overrides', LogOverrideController::class)->only(['index', 'show']); Route::apiResource('news', NewsPostController::class)->only(['index', 'show']); Route::apiResource('power-categories', PowerCategoryController::class)->only(['index', 'show']); Route::apiResource('qso-overrides', QsoOverrideController::class)->only(['index', 'show']); Route::apiResource('qso-results', QsoResultController::class)->only(['index', 'show']); Route::apiResource('rounds', RoundController::class)->only(['index', 'show']); Route::middleware('auth:sanctum')->group(function () { Route::apiResource('bands', BandController::class)->except(['index', 'show']); Route::apiResource('categories', CategoryController::class)->except(['index', 'show']); Route::apiResource('countries-wwl', CountryWwlController::class)->except(['index', 'show']); Route::apiResource('contests', ContestController::class)->except(['index', 'show']); Route::apiResource('contest-parameters', ContestParameterController::class)->except(['index', 'show']); Route::apiResource('cty', CtyController::class)->except(['index', 'show']); Route::apiResource('edi-bands', EdiBandController::class)->except(['index', 'show']); Route::apiResource('evaluation-rule-sets', EvaluationRuleSetController::class)->except(['index', 'show']); Route::apiResource('evaluation-runs', EvaluationRunController::class)->except(['index', 'show']); Route::post('evaluation-runs/{evaluationRun}/cancel', [EvaluationRunController::class, 'cancel']); Route::post('evaluation-runs/{evaluationRun}/resume', [EvaluationRunController::class, 'resume']); Route::post('evaluation-runs/{evaluationRun}/result-type', [EvaluationRunController::class, 'setResultType']); Route::get('evaluation-runs/{evaluationRun}/events', [EvaluationRunController::class, 'events']); Route::apiResource('edi-categories', EdiCategoryController::class)->except(['index', 'show']); Route::delete('files/{file}', [FileController::class, 'destroy']); Route::apiResource('logs', LogController::class)->except(['index', 'show']); Route::apiResource('log-qsos', LogQsoController::class)->except(['index', 'show']); Route::apiResource('log-results', LogResultController::class)->except(['index', 'show']); Route::apiResource('log-overrides', LogOverrideController::class)->except(['index', 'show']); Route::apiResource('news', NewsPostController::class)->except(['index', 'show']); Route::apiResource('power-categories', PowerCategoryController::class)->except(['index', 'show']); Route::apiResource('qso-overrides', QsoOverrideController::class)->except(['index', 'show']); Route::apiResource('qso-results', QsoResultController::class)->except(['index', 'show']); Route::apiResource('rounds', RoundController::class)->except(['index', 'show']); Route::post('rounds/{round}/recalculate-claimed', [RoundController::class, 'recalculateClaimed']); Route::post('rounds/{round}/evaluation-runs/start', [RoundController::class, 'startEvaluation']); Route::post('rounds/{round}/evaluation-runs/start-incremental', [RoundController::class, 'startEvaluationIncremental']); Route::apiResource('users', UserController::class)->only(['index', 'show', 'store', 'update', 'destroy']); Route::get('/user', function (Request $request) { return $request->user(); }); Route::post('/tokens/create', function (Request $request) { $request->validate([ 'token_name' => ['required', 'string', 'max:255'], ]); $token = $request->user()->createToken($request->token_name); return ['token' => $token->plainTextToken]; }); });