/** * Destroy the given team invitation. * * @param \Illuminate\Http\Request $request * @param string $teamId * @param string $inviteId * @return \Illuminate\Http\Response */ public function destroyTeamInvitationForOwner(Request $request, $teamId, $inviteId) { $user = $request->user(); $team = $user->teams()->where('owner_id', $user->id)->findOrFail($teamId); $team->invitations()->where('id', $inviteId)->delete(); return $this->teams->getTeam($user, $teamId); }
/** * Destroy the given team. * * @param \Illuminate\Http\Request $request * @param string $teamId * @return \Illuminate\Http\Response */ public function destroy(Request $request, $teamId) { $user = $request->user(); $team = $request->user()->teams()->where('owner_id', $user->id)->findOrFail($teamId); event(new DeletingTeam($team)); $team->users()->where('current_team_id', $team->id)->update(['current_team_id' => null]); $team->users()->detach(); $team->delete(); return $this->teams->getAllTeamsForUser($user); }
/** * Handle a registration request for the application. * * @param \Illuminate\Http\Request $request * @param bool $withSubscription * @return \Illuminate\Http\Response */ protected function register(Request $request, $withSubscription = false) { $this->validateRegistration($request, $withSubscription); $user = $this->users->createUserFromRegistrationRequest($request, $withSubscription); if ($request->team_name) { $team = $this->teams->create($user, ['name' => $request->team_name]); event(new TeamCreated($team)); } if ($request->invitation) { $this->teams->attachUserToTeamByInvitation($request->invitation, $user); } event(new Registered($user)); if ($withSubscription) { event(new Subscribed($user)); } Auth::login($user); return response()->json(['path' => $this->redirectPath()]); }
/** * Get all of the pending invitations for the user. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function getPendingInvitationsForUser(Request $request) { return $this->teams->getPendingInvitationsForUser($request->user()); }