toastr = $toastr; } /** * Follow A User. * * @param User $user * * @return Illuminate\Http\RedirectResponse */ public function follow(User $user) { if (auth()->user()->id == $user->id) { return redirect()->route('profile', ['username' => $user->username, 'id' => $user->id]) ->with($this->toastr->error('Nice try, but sadly you can not follow yourself.', 'Whoops!', ['options'])); } elseif (! auth()->user()->isFollowing($user->id)) { $follow = new Follow(); $follow->user_id = auth()->user()->id; $follow->target_id = $user->id; $follow->save(); return redirect()->route('profile', ['username' => $user->username, 'id' => $user->id]) ->with($this->toastr->success('You are now following '.$user->username, 'Yay!', ['options'])); } else { return redirect()->route('profile', ['username' => $user->username, 'id' => $user->id]) ->with($this->toastr->error('You are already following this user', 'Whoops!', ['options'])); } } /** * Un Follow A User. * * @param User $user * * @return Illuminate\Http\RedirectResponse */ public function unfollow(User $user) { if (auth()->user()->isFollowing($user->id)) { $follow = auth()->user()->follows()->where('target_id', '=', $user->id)->first(); $follow->delete(); return redirect()->route('profile', ['username' => $user->username, 'id' => $user->id]) ->with($this->toastr->success('You are no longer following '.$user->username, 'Yay!', ['options'])); } else { return redirect()->route('profile', ['username' => $user->username, 'id' => $user->id]) ->with($this->toastr->error('You are not following this user to begin with', 'Whoops!', ['options'])); } } }