51 lines
3.1 KiB
PHP
Executable File
51 lines
3.1 KiB
PHP
Executable File
<?php
|
|
|
|
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Support\Facades\Route;
|
|
use App\Http\Controllers\Api\Tg\HookController;
|
|
use App\Http\Controllers\Api\Nasa\V1\CategoryBaseController as NasaV1CategoryBaseController;
|
|
use App\Http\Controllers\Api\v1\GithubController;
|
|
|
|
Route::get('/github/todayupd', [GithubController::class, 'todayUpd']);
|
|
Route::get('/github/getlast', [GithubController::class, 'getLast']);
|
|
Route::get('/github/getfntoday/{date?}', [GithubController::class, 'getFnToday']);
|
|
|
|
Route::prefix('nasa/v1')->middleware('nasa.auth')->group(function () {
|
|
|
|
Route::prefix('category/base')->group(function() {
|
|
Route::get('', [NasaV1CategoryBaseController::class, 'index']);
|
|
Route::get('detail/{id}', [NasaV1CategoryBaseController::class, 'detail']);
|
|
Route::put('detail/save/{id}', [NasaV1CategoryBaseController::class, 'detailSave']);
|
|
Route::delete('delete/{id}', [NasaV1CategoryBaseController::class, 'delete']);
|
|
Route::get('add', [NasaV1CategoryBaseController::class, 'add']);
|
|
Route::put('add/save', [NasaV1CategoryBaseController::class, 'addSave']);
|
|
Route::get('clone/{id}', [NasaV1CategoryBaseController::class, 'clone']);
|
|
Route::put('clone/save', [NasaV1CategoryBaseController::class, 'cloneSave']);
|
|
Route::get('hit/{id}/{field}', [NasaV1CategoryBaseController::class, 'hit']);
|
|
});
|
|
|
|
});
|
|
|
|
|
|
// AI editorial API: independent of legacy feed ingestion and ATOM.
|
|
Route::prefix('editorial/v1')->middleware([\App\Http\Middleware\EditorialAuthentication::class, 'throttle:60,1'])->group(function () {
|
|
$controller = \App\Http\Controllers\Api\Editorial\EditorialController::class;
|
|
Route::get('catalog', [$controller, 'catalog']);
|
|
Route::get('source-articles/{article}', [$controller, 'source'])->whereNumber('article');
|
|
Route::post('assets', [$controller, 'upload']);
|
|
Route::get('assets/{sha}', [$controller, 'asset'])->where('sha', '[a-f0-9]{64}');
|
|
Route::post('drafts', [$controller, 'store']);
|
|
Route::get('drafts/{draft}', [$controller, 'draft'])->whereUuid('draft');
|
|
Route::post('drafts/{draft}/publish', [$controller, 'publish'])->whereUuid('draft');
|
|
Route::get('articles/{key}', [$controller, 'article']);
|
|
Route::get('articles/{key}/versions/{revision}', [$controller, 'version'])->whereNumber('revision');
|
|
Route::post('articles/{key}/rollback', [$controller, 'rollback']);
|
|
Route::get('publications/{publication}', [$controller, 'receipt'])->whereUuid('publication');
|
|
Route::post('publications/{publication}/synchronize', [$controller, 'synchronize'])->whereUuid('publication');
|
|
});
|
|
Route::get('editorial/v1/preview/{draft}/{key}', [\App\Http\Controllers\Api\Editorial\EditorialController::class, 'preview'])
|
|
->middleware(['signed:relative', 'throttle:60,1'])->whereUuid('draft')->name('editorial.preview');
|
|
Route::get('editorial/v1/preview-assets/{sha}', [\App\Http\Controllers\Api\Editorial\EditorialController::class, 'asset'])
|
|
->middleware(['signed:relative', 'throttle:120,1'])->where('sha', '[a-f0-9]{64}')->name('editorial.preview-asset');
|