diff --git a/app/Http/Controllers/FollowerController.php b/app/Http/Controllers/FollowerController.php index fa35ca2bb..42c776b23 100644 --- a/app/Http/Controllers/FollowerController.php +++ b/app/Http/Controllers/FollowerController.php @@ -2,9 +2,41 @@ namespace App\Http\Controllers; +use Auth; +use App\{Follower, Profile}; use Illuminate\Http\Request; +use App\Jobs\FollowPipeline\FollowPipeline; class FollowerController extends Controller { - // + public function __construct() + { + $this->middleware('auth'); + } + + public function store(Request $request) + { + $this->validate($request, [ + 'item' => 'required|integer', + ]); + + $user = Auth::user()->profile; + $target = Profile::where('id', '!=', $user->id)->findOrFail($request->input('item')); + + $isFollowing = Follower::whereProfileId($user->id)->whereFollowingId($target->id)->count(); + + if($isFollowing == 0) { + $follower = new Follower; + $follower->profile_id = $user->id; + $follower->following_id = $target->id; + $follower->save(); + FollowPipeline::dispatch($follower); + } else { + $follower = Follower::whereProfileId($user->id)->whereFollowingId($target->id)->firstOrFail(); + $follower->delete(); + } + + + return redirect()->back(); + } }