From 0351f92bf467b76605d6d215ced4f22219731547 Mon Sep 17 00:00:00 2001 From: xiaomlove <1939737565@qq.com> Date: Tue, 30 Dec 2025 17:49:56 +0700 Subject: [PATCH] [API] comments list --- app/Http/Controllers/CommentController.php | 11 +---------- app/Http/Resources/CommentResource.php | 10 ++++------ app/Repositories/CommentRepository.php | 21 +++++++++++---------- include/functions.php | 3 +++ routes/api.php | 3 +-- 5 files changed, 20 insertions(+), 28 deletions(-) diff --git a/app/Http/Controllers/CommentController.php b/app/Http/Controllers/CommentController.php index 866f2694..db282faf 100644 --- a/app/Http/Controllers/CommentController.php +++ b/app/Http/Controllers/CommentController.php @@ -25,17 +25,8 @@ class CommentController extends Controller */ public function index(Request $request) { - $torrentId = $request->torrent_id; - $with = ['create_user', 'update_user']; - $comments = Comment::query() - ->with($with) - ->where('torrent', $torrentId) - ->paginate(); + $comments = $this->repository->getList($request, Auth::user()); $resource = CommentResource::collection($comments); -// $resource->additional([ -// 'page_title' => nexus_trans('comment.index.page_title'), -// ]); - return $this->success($resource); } diff --git a/app/Http/Resources/CommentResource.php b/app/Http/Resources/CommentResource.php index 4ecaec39..b29e5886 100644 --- a/app/Http/Resources/CommentResource.php +++ b/app/Http/Resources/CommentResource.php @@ -15,15 +15,13 @@ class CommentResource extends JsonResource */ public function toArray($request) { - $descriptionArr = format_description($this->text); return [ 'id' => $this->id, - 'description' => $descriptionArr, - 'images' => get_image_from_description($descriptionArr), - 'updated_at_human' => format_datetime($this->editdate), - 'created_at_human' => $this->added->format('Y-m-d H:i'), + 'text' => $this->text, + 'updated_at' => format_datetime($this->editdate), + 'created_at' => format_datetime($this->added), 'create_user' => new UserResource($this->whenLoaded('create_user')), - 'update_user' => new UserResource($this->whenLoaded('update_user')), + 'update_user' => $this->when($this->editedby > 0, new UserResource($this->whenLoaded('update_user'))), ]; } } diff --git a/app/Repositories/CommentRepository.php b/app/Repositories/CommentRepository.php index 76722c50..b81195a1 100644 --- a/app/Repositories/CommentRepository.php +++ b/app/Repositories/CommentRepository.php @@ -9,26 +9,27 @@ use App\Models\Torrent; use App\Models\User; use Carbon\Carbon; use Hamcrest\Core\Set; +use Illuminate\Contracts\Auth\Authenticatable; +use Illuminate\Http\Request; use Illuminate\Support\Facades\DB; use Nexus\Database\NexusDB; class CommentRepository extends BaseRepository { - public function getList(array $params) + public function getList(Request $request, Authenticatable $user) { $query = Comment::query()->with(['create_user', 'update_user']); - if (!empty($params['torrent_id'])) { - $query->where('torrent', $params['torrent_id']); + if (!empty($request->torrent_id)) { + $query->where('torrent', $request->torrent_id); } - if (!empty($params['offer_id'])) { - $query->where('offer', $params['offer_id']); + if (!empty($request->offer_id)) { + $query->where('offer', $request->offer_id); } - if (!empty($params['request_id'])) { - $query->where('request', $params['request_id']); + if (!empty($request->request_id)) { + $query->where('request', $request->request_id); } - list($sortField, $sortType) = $this->getSortFieldAndType($params); - $query->orderBy($sortField, $sortType); - return $query->paginate(); + $query->orderBy('id', 'desc'); + return $query->paginate($this->getPerPageFromRequest($request)); } public function store(array $params, User $user) diff --git a/include/functions.php b/include/functions.php index 2145b447..948c2cb3 100644 --- a/include/functions.php +++ b/include/functions.php @@ -4946,6 +4946,9 @@ function get_searchbox_value($mode = 1, $item = 'showsubcat'){ function get_ratio($userid, $html = true){ $row = get_user_row($userid); + if (empty($row)) { + return "---"; + } $uped = $row['uploaded']; $downed = $row['downloaded']; if ($html == true){ diff --git a/routes/api.php b/routes/api.php index 3f0f2195..ea3d2c1b 100644 --- a/routes/api.php +++ b/routes/api.php @@ -29,7 +29,6 @@ Route::group(['middleware' => ['auth:sanctum']], function () { // Route::resource('messages', \App\Http\Controllers\MessageController::class); // Route::get('messages-unread', [\App\Http\Controllers\MessageController::class, 'listUnread']); // Route::resource('torrents', \App\Http\Controllers\TorrentController::class); -// Route::resource('comments', \App\Http\Controllers\CommentController::class); // Route::resource('peers', \App\Http\Controllers\PeerController::class); // Route::resource('files', \App\Http\Controllers\FileController::class); // Route::resource('thanks', \App\Http\Controllers\ThankController::class); @@ -56,7 +55,7 @@ Route::group(['middleware' => ['auth:sanctum']], function () { Route::post('bookmarks', [\App\Http\Controllers\BookmarkController::class, 'store'])->middleware(ability(RoutePermissionEnum::BOOKMARK_STORE)); Route::post('bookmarks/delete', [\App\Http\Controllers\BookmarkController::class, 'destroy'])->middleware(ability(RoutePermissionEnum::BOOKMARK_DELETE)); - + Route::get('comments', [\App\Http\Controllers\CommentController::class, 'index'])->middleware(ability(RoutePermissionEnum::TORRENT_VIEW)); });