repository = $repository; } public function index(Request $request) { $params = $request->all(); $params['visible'] = Torrent::VISIBLE_YES; $params['category_mode'] = Setting::get('main.browsecat'); $result = $this->repository->getList($params, Auth::user()); $resource = TorrentResource::collection($result); $resource->additional([ 'page_title' => nexus_trans('torrent.index.page_title'), ]); return $this->success($resource); } /** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function store(Request $request) { // } /** * Display the specified resource. * * @param int $id * @return \Illuminate\Http\Response */ public function show($id) { /** * @var User */ $user = Auth::user(); $result = $this->repository->getDetail($id, $user); $isBookmarked = $user->bookmarks()->where('torrentid', $id)->exists(); $resource = new TorrentResource($result); $resource->additional([ 'page_title' => nexus_trans('torrent.show.page_title'), 'field_labels' => Torrent::getFieldLabels(), 'is_bookmarked' => (int)$isBookmarked, 'bonus_reward_values' => Torrent::BONUS_REWARD_VALUES, ]); return $this->success($resource); } /** * Update the specified resource in storage. * * @param \Illuminate\Http\Request $request * @param int $id * @return \Illuminate\Http\Response */ public function update(Request $request, $id) { // } /** * Remove the specified resource from storage. * * @param int $id * @return \Illuminate\Http\Response */ public function destroy($id) { // } public function searchBox() { $result = $this->repository->getSearchBox(); return $this->success($result); } public function approvalPage(Request $request) { $request->validate(['torrent_id' => 'required']); $torrentId = $request->torrent_id; $torrent = Torrent::query()->findOrFail($torrentId, Torrent::$commentFields); $denyReasons = TorrentDenyReason::query()->orderBy('priority', 'desc')->get(); return view('torrent/approval', compact('torrent', 'denyReasons')); } public function approvalLogs(Request $request) { $request->validate(['torrent_id' => 'required']); $torrentId = $request->torrent_id; $actionTypes = [ TorrentOperationLog::ACTION_TYPE_APPROVAL_NONE, TorrentOperationLog::ACTION_TYPE_APPROVAL_ALLOW, TorrentOperationLog::ACTION_TYPE_APPROVAL_DENY, ]; $records = TorrentOperationLog::query() ->with(['user']) ->where('torrent_id', $torrentId) ->whereIn('action_type', $actionTypes) ->orderBy('id', 'desc') ->paginate($request->limit); $resource = TorrentOperationLogResource::collection($records); return $this->success($resource); } public function approval(Request $request) { $request->validate([ 'torrent_id' => 'required', 'approval_status' => 'required', ]); $params = $request->all(); $this->repository->approval(Auth::user(), $params); return $this->success($params); } }