[API] comments list

This commit is contained in:
xiaomlove
2025-12-30 17:49:56 +07:00
parent 5f37d5c59a
commit 0351f92bf4
5 changed files with 20 additions and 28 deletions

View File

@@ -25,17 +25,8 @@ class CommentController extends Controller
*/ */
public function index(Request $request) public function index(Request $request)
{ {
$torrentId = $request->torrent_id; $comments = $this->repository->getList($request, Auth::user());
$with = ['create_user', 'update_user'];
$comments = Comment::query()
->with($with)
->where('torrent', $torrentId)
->paginate();
$resource = CommentResource::collection($comments); $resource = CommentResource::collection($comments);
// $resource->additional([
// 'page_title' => nexus_trans('comment.index.page_title'),
// ]);
return $this->success($resource); return $this->success($resource);
} }

View File

@@ -15,15 +15,13 @@ class CommentResource extends JsonResource
*/ */
public function toArray($request) public function toArray($request)
{ {
$descriptionArr = format_description($this->text);
return [ return [
'id' => $this->id, 'id' => $this->id,
'description' => $descriptionArr, 'text' => $this->text,
'images' => get_image_from_description($descriptionArr), 'updated_at' => format_datetime($this->editdate),
'updated_at_human' => format_datetime($this->editdate), 'created_at' => format_datetime($this->added),
'created_at_human' => $this->added->format('Y-m-d H:i'),
'create_user' => new UserResource($this->whenLoaded('create_user')), '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'))),
]; ];
} }
} }

View File

@@ -9,26 +9,27 @@ use App\Models\Torrent;
use App\Models\User; use App\Models\User;
use Carbon\Carbon; use Carbon\Carbon;
use Hamcrest\Core\Set; use Hamcrest\Core\Set;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\DB;
use Nexus\Database\NexusDB; use Nexus\Database\NexusDB;
class CommentRepository extends BaseRepository class CommentRepository extends BaseRepository
{ {
public function getList(array $params) public function getList(Request $request, Authenticatable $user)
{ {
$query = Comment::query()->with(['create_user', 'update_user']); $query = Comment::query()->with(['create_user', 'update_user']);
if (!empty($params['torrent_id'])) { if (!empty($request->torrent_id)) {
$query->where('torrent', $params['torrent_id']); $query->where('torrent', $request->torrent_id);
} }
if (!empty($params['offer_id'])) { if (!empty($request->offer_id)) {
$query->where('offer', $params['offer_id']); $query->where('offer', $request->offer_id);
} }
if (!empty($params['request_id'])) { if (!empty($request->request_id)) {
$query->where('request', $params['request_id']); $query->where('request', $request->request_id);
} }
list($sortField, $sortType) = $this->getSortFieldAndType($params); $query->orderBy('id', 'desc');
$query->orderBy($sortField, $sortType); return $query->paginate($this->getPerPageFromRequest($request));
return $query->paginate();
} }
public function store(array $params, User $user) public function store(array $params, User $user)

View File

@@ -4946,6 +4946,9 @@ function get_searchbox_value($mode = 1, $item = 'showsubcat'){
function get_ratio($userid, $html = true){ function get_ratio($userid, $html = true){
$row = get_user_row($userid); $row = get_user_row($userid);
if (empty($row)) {
return "---";
}
$uped = $row['uploaded']; $uped = $row['uploaded'];
$downed = $row['downloaded']; $downed = $row['downloaded'];
if ($html == true){ if ($html == true){

View File

@@ -29,7 +29,6 @@ Route::group(['middleware' => ['auth:sanctum']], function () {
// Route::resource('messages', \App\Http\Controllers\MessageController::class); // Route::resource('messages', \App\Http\Controllers\MessageController::class);
// Route::get('messages-unread', [\App\Http\Controllers\MessageController::class, 'listUnread']); // Route::get('messages-unread', [\App\Http\Controllers\MessageController::class, 'listUnread']);
// Route::resource('torrents', \App\Http\Controllers\TorrentController::class); // 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('peers', \App\Http\Controllers\PeerController::class);
// Route::resource('files', \App\Http\Controllers\FileController::class); // Route::resource('files', \App\Http\Controllers\FileController::class);
// Route::resource('thanks', \App\Http\Controllers\ThankController::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', [\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::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));
}); });