コード例 #1
0
 /**
  * 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'));
 }
コード例 #2
0
ファイル: Manager.php プロジェクト: DoSomething/gladiator
 /**
  * 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;
     }
 }
コード例 #3
0
 /**
  * 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!');
 }
コード例 #4
0
 /**
  * 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;
 }
コード例 #5
0
 /**
  * Returns an index of all contestants.
  *
  * @return \Illuminate\Http\Response
  */
 public function contestantsIndex()
 {
     $contestants = $this->repository->getAllByRole();
     return view('users.contestants_index', compact('contestants'));
 }
コード例 #6
0
ファイル: Registrar.php プロジェクト: DoSomething/gladiator
 /**
  * Create a user in Gladiator.
  *
  * @param  array $account
  * @return object
  */
 public function createUser($account)
 {
     return $this->repository->create($account);
 }