You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
36 lines
881 B
36 lines
881 B
<?php
|
|
|
|
namespace App\Http\Controllers\Miniapp;
|
|
|
|
use App\Http\Controllers\Controller;
|
|
use App\Models\PastReview;
|
|
use App\Support\ApiResponse;
|
|
use Illuminate\Http\JsonResponse;
|
|
use Illuminate\Http\Request;
|
|
|
|
class PastReviewController extends Controller
|
|
{
|
|
use ApiResponse;
|
|
|
|
public function index(Request $request): JsonResponse
|
|
{
|
|
$pageSize = min(50, max(1, (int) $request->query('page_size', 10)));
|
|
|
|
$items = PastReview::query()
|
|
->where('status', 1)
|
|
->orderBy('sort')
|
|
->orderByDesc('id')
|
|
->limit($pageSize)
|
|
->get()
|
|
->map(fn (PastReview $row) => [
|
|
'id' => $row->id,
|
|
'title' => $row->title,
|
|
'cover_url' => $row->cover_url,
|
|
])
|
|
->values()
|
|
->all();
|
|
|
|
return $this->ok(['items' => $items]);
|
|
}
|
|
}
|