authorize('viewAny', [ServerLog::class, $server]); return Inertia::render('server-logs/index', [ 'title' => 'Server logs', 'logs' => ServerLogResource::collection($server->logs()->where('is_remote', 0)->latest()->simplePaginate(config('web.pagination_size'))), ]); } #[Get('/remote', name: 'logs.remote')] public function remote(Server $server): Response { $this->authorize('viewAny', [ServerLog::class, $server]); return Inertia::render('server-logs/index', [ 'title' => 'Remote logs', 'logs' => ServerLogResource::collection($server->logs()->where('is_remote', 1)->latest()->simplePaginate(config('web.pagination_size'))), 'remote' => true, ]); } #[Get('/json/{site?}', name: 'logs.json')] public function json(Server $server, ?Site $site = null): ResourceCollection { $this->authorize('viewAny', [ServerLog::class, $server]); $logs = $server->logs() ->when($site, fn ($query) => $query->where('site_id', $site->id)) ->latest() ->simplePaginate(config('web.pagination_size')); return ServerLogResource::collection($logs); } #[Get('/{log}', name: 'logs.show')] public function show(Server $server, ServerLog $log): string { $this->authorize('view', $log); return $log->getContent(); } /** * @throws Throwable */ #[Get('/{log}/download', name: 'logs.download')] public function download(Server $server, ServerLog $log): StreamedResponse { $this->authorize('view', $log); return $log->download(); } #[Post('/', name: 'logs.store')] public function store(Request $request, Server $server): RedirectResponse { $this->authorize('create', [ServerLog::class, $server]); app(CreateLog::class)->create($server, $request->input()); return back()->with('success', 'Log created successfully'); } #[Patch('{log}', name: 'logs.update')] public function update(Request $request, Server $server, ServerLog $log): RedirectResponse { $this->authorize('update', $log); app(UpdateLog::class)->update($log, $request->input()); return back()->with('success', 'Log updated successfully'); } #[Delete('{log}', name: 'logs.destroy')] public function destroy(Server $server, ServerLog $log): RedirectResponse { $this->authorize('delete', $log); $log->delete(); return back()->with('success', 'Log deleted successfully'); } }