CircleController.php 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. <?php
  2. namespace App\Http\Controllers;
  3. use Illuminate\Http\Request;
  4. use Illuminate\Validation\Rule;
  5. use Auth;
  6. use App\{
  7. Circle,
  8. CircleProfile,
  9. Profile,
  10. Status,
  11. };
  12. class CircleController extends Controller
  13. {
  14. public function __construct()
  15. {
  16. $this->middleware('auth');
  17. }
  18. public function home(Request $request)
  19. {
  20. $circles = Circle::whereProfileId(Auth::user()->profile->id)
  21. ->orderByDesc('created_at')
  22. ->paginate(10);
  23. return view('account.circles.home', compact('circles'));
  24. }
  25. public function create(Request $request)
  26. {
  27. return view('account.circles.create');
  28. }
  29. public function store(Request $request)
  30. {
  31. $this->validate($request, [
  32. 'name' => 'required|string|min:1',
  33. 'description' => 'nullable|string|max:255',
  34. 'scope' => [
  35. 'required',
  36. 'string',
  37. Rule::in([
  38. 'public',
  39. 'private',
  40. 'unlisted',
  41. 'exclusive'
  42. ])
  43. ],
  44. ]);
  45. $circle = Circle::firstOrCreate([
  46. 'profile_id' => Auth::user()->profile->id,
  47. 'name' => $request->input('name')
  48. ], [
  49. 'description' => $request->input('description'),
  50. 'scope' => $request->input('scope'),
  51. 'active' => false
  52. ]);
  53. return redirect(route('account.circles'));
  54. }
  55. public function show(Request $request, $id)
  56. {
  57. $circle = Circle::findOrFail($id);
  58. return view('account.circles.show', compact('circle'));
  59. }
  60. }