/** * Decline an invite to join a board * * @param $board * @return \Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector */ public function declineInvite($board) { $user = auth()->user(); $board = Board::where('identifier', $board)->first(); $decline = Invite::where('board_identifier', $board->identifier)->where('new_member', $user->email)->delete(); return redirect('/boards'); }
/** * Bootstrap the application services. * * @return void */ public function boot() { view()->composer('partials.navbar', function ($view) { $user = auth()->user(); $invites = Invite::where('new_member', $user->email)->get(); $view->with('invites', $invites); }); }
/** * Add a new member to the board * Check if new user or existing user is invited * * @param Request $request * @return \Illuminate\Http\JsonResponse */ public function addMemberToBoard(Request $request) { $validator = Validator::make($request->all(), ['email' => 'required|email']); if ($validator->fails()) { return response()->json('Email is required and in the right format', 400); } $user = User::where('email', $request->email)->first(); $board = Board::where('identifier', $request->board)->first(); if (is_null($user)) { $member = Invite::create(['new_member' => $request->email, 'board_identifier' => $request->board]); //Queue invite email to new user $job = (new inviteNewUserToBoard($member))->delay(60 * 2); $this->dispatch($job); return response()->json('successfully invited new member', 200); } else { $member = Invite::create(['new_member' => $user->email, 'board_identifier' => $request->board]); //Queue invite to existing user $job = (new inviteExistingUserToBoard($member, $user))->delay(60 * 2); $this->dispatch($job); return response()->json('successfully invited new member', 200); } }