/** * Display the specified resource. * * @param \Gladiator\Models\WaitingRoom $room * @return \Illuminate\Http\Response */ public function show(WaitingRoom $room) { $users = []; $contest = Contest::find($room->contest_id); $ids = $room->users->pluck('id')->toArray(); if ($ids) { $users = $this->repository->getAll($ids); } return view('waitingrooms.show', compact('room', 'contest', 'users')); }
/** * Fires off an event to send an email a user. * * @param Gladiator\Models\User $user * @param Gladiator\Models\Contest $contest * @param array $params * @return null|void */ public function sendEmail($user, $contest, $params) { if (!isset($params)) { return null; } $message = Message::where($params)->first(); if ($message) { $resources = ['message' => $message, 'contest' => $contest, 'users' => [$this->userRepository->find($user->id)], 'test' => false]; event(new QueueMessageRequest($resources)); } else { return null; } }
/** * Fire an event that queues a message to be sent. * * @param int $id */ public function sendMessage(Message $message) { // Get competition with activity. $competitionId = request('competition_id'); $contest = Contest::find(request('contest_id')); $contest = $this->manager->appendCampaign($contest); if ($competitionId) { $competition = Competition::find($competitionId); // Get competition with activity from flash if it is there. // Otherwise, grab it. $key = generate_model_flash_session_key($competition, ['includeActivity' => true]); if (session()->has($key)) { $competition = session($key); } else { $competition = $this->manager->getCompetitionOverview($competition, true); } } // Send test emails to authenticated user. if (request('test')) { $user = Auth::user(); $user = $this->userRepository->find($user->id); $user = $this->manager->appendReportback($user, []); $users = [$user]; } else { $users = $competition->contestants; // Only send checkin messages to users who haven't reported back. if ($message->type === 'checkin') { $users = $competition->activity['inactive']; } } $resources = ['message' => $message, 'competition' => isset($competition) ? $competition : null, 'contest' => $contest, 'users' => $users, 'test' => request('test')]; // Kick off email sending event(new QueueMessageRequest($resources)); if (!$competitionId) { return redirect()->back()->with('status', 'Fired that right the hell off!'); } return redirect()->route('competitions.message', ['competition' => $competitionId, 'contest' => request('contest_id')])->with('status', 'Fired that right the hell off!'); }
/** * Update the specified user's data and resolve the cache. * * @param \Gladiator\Http\Requests\UserRequest $request * @param string $id Northstar ID * @return object */ public function update($request, $id) { $user = $this->repository->update($request, $id); $this->resolveUpdatedRoles($id, $request->role); return $user; }
/** * Returns an index of all contestants. * * @return \Illuminate\Http\Response */ public function contestantsIndex() { $contestants = $this->repository->getAllByRole(); return view('users.contestants_index', compact('contestants')); }
/** * Create a user in Gladiator. * * @param array $account * @return object */ public function createUser($account) { return $this->repository->create($account); }