wantsActivityStream()) { return (new ActivityStreamsService())->siteOwnerResponse(); } $notes = Note::latest() ->with('place', 'media', 'client') ->withCount(['webmentions As replies' => function ($query) { $query->where('type', 'in-reply-to'); }])->paginate(10); return view('notes.index', compact('notes')); } /** * Show a single note. */ public function show(string $urlId): View|JsonResponse|Response { try { $note = Note::nb60($urlId)->with('webmentions')->firstOrFail(); } catch (ModelNotFoundException $exception) { abort(404); } if (request()->wantsActivityStream()) { return (new ActivityStreamsService())->singleNoteResponse($note); } return view('notes.show', compact('note')); } /** * Redirect /note/{decID} to /notes/{nb60id}. */ public function redirect(int $decId): RedirectResponse { return redirect(config('app.url') . '/notes/' . (new Numbers())->numto60($decId)); } /** * Show all notes tagged with {tag}. */ public function tagged(string $tag): View { $notes = Note::whereHas('tags', function ($query) use ($tag) { $query->where('tag', $tag); })->get(); return view('notes.tagged', compact('notes', 'tag')); } /** * Page to create a new note. * * Dummy page for now. */ public function create(): View { return view('notes.create'); } }