name('api.today'); Route::get('recent', \API\RecentArticles::class)->name('api.recent'); Route::get('topic_filter', \API\TopicFilter::class)->name('api.topic_filter'); Route::get('article_filter', \API\ArticleFilter::class)->name('api.article_filter'); Route::get('topics', [TopicsAPIController::class, 'index'])->name('api.topics.index'); Route::get('topic/{topic:slug}', [TopicsAPIController::class, 'show'])->name('api.topics.show'); Route::get('sources', [SourcesAPIController::class, 'index'])->name('api.sources.index'); Route::get('source/{source:slug}', [SourcesAPIController::class, 'show'])->name('api.sources.show'); Route::get('article/{article:id}', [ArticlesAPIController::class, 'show'])->name('api.article.show'); Route::post('newsletter/subscribe', [NewsLetterAPIController::class, 'store'])->name('api.newsletter.store'); Route::get('/ping/{source}', \API\MonitorAPIController::class); Route::get('/latest/webhook', function () { return Cache::remember('webhooks.latest', 60, function () { return Article::latest()->limit(20)->get()->transform(function ($article) { return [ "id" => $article->id, "title" => $article->title, "original" => $article->url, "author" => $article->author, "featured_image" => $article->featured_image, "published_date" => $article->published_date, "source" => $article->source->slug, "link" => "https://karudhaas.net/article/{$article->source->slug}/{$article->guid}" ]; }); }); });