30 lines
702 B
PHP
30 lines
702 B
PHP
<?php
|
|
|
|
namespace App\Http\Controllers\API;
|
|
|
|
use App\Article;
|
|
use Illuminate\Http\Request;
|
|
use App\Http\Resources\ArticleResource;
|
|
use App\Http\Controllers\Controller;
|
|
use Illuminate\Support\Facades\Cache;
|
|
|
|
final class RecentArticles extends Controller
|
|
{
|
|
/**
|
|
* Get the Latest articles made paginated
|
|
*
|
|
*
|
|
*/
|
|
public function __invoke()
|
|
{
|
|
$currentPage = request()->get('page',1);
|
|
return Cache::remember('articles.recent_'.$currentPage, 300, function () {
|
|
return [
|
|
"articles" => Article::with('source', 'topics')
|
|
->latest("published_date")
|
|
->paginate(20)
|
|
];
|
|
});
|
|
}
|
|
}
|