Files
karudhaas/routes/api.php
Mohamed jinas f316236630 WIP
2024-01-07 01:40:22 +05:00

57 lines
2.4 KiB
PHP

<?php
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\API\ArticlesAPIController;
use App\Http\Controllers\API\SourcesAPIController;
use App\Http\Controllers\API\TopicsAPIController;
use App\Http\Controllers\API\MyListAPIController;
use App\Http\Controllers\API\NewsLetterAPIController;
use App\Article;
use Illuminate\Support\Facades\Cache;
/*
|--------------------------------------------------------------------------
| API Routes
|--------------------------------------------------------------------------
|
| Here is where you can register API routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| is assigned the "api" middleware group. Enjoy building your API!
|
*/
Route::get('today', \API\TodaysPick::class)->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}"
];
});
});
});