<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Validation\Rule; use Auth; use App\{ Circle, CircleProfile, Profile, Status, }; class CircleController extends Controller { public function __construct() { $this->middleware('auth'); } public function home(Request $request) { $circles = Circle::whereProfileId(Auth::user()->profile->id) ->orderByDesc('created_at') ->paginate(10); return view('account.circles.home', compact('circles')); } public function create(Request $request) { return view('account.circles.create'); } public function store(Request $request) { $this->validate($request, [ 'name' => 'required|string|min:1', 'description' => 'nullable|string|max:255', 'scope' => [ 'required', 'string', Rule::in([ 'public', 'private', 'unlisted', 'exclusive' ]) ], ]); $circle = Circle::firstOrCreate([ 'profile_id' => Auth::user()->profile->id, 'name' => $request->input('name') ], [ 'description' => $request->input('description'), 'scope' => $request->input('scope'), 'active' => false ]); return redirect(route('account.circles')); } public function show(Request $request, $id) { $circle = Circle::findOrFail($id); return view('account.circles.show', compact('circle')); } }