Joli\SlackSecretSanta\UserExtractor::extractAll PHP Method

extractAll() public method

public extractAll ( ) : CL\Slack\Model\User[]
return CL\Slack\Model\User[]
    public function extractAll()
    {
        $payload = new UsersListPayload();
        $payload->getResponseClass();
        /** @var $response UsersListPayloadResponse */
        $response = $this->sendPayload($payload);
        return array_filter($response->getUsers(), function (User $user) {
            return !$user->isBot() && !$user->isDeleted() && $user->getName() !== 'slackbot';
        });
    }

Usage Example

 public function run(Request $request)
 {
     $token = $this->session->get(self::TOKEN_SESSION_KEY);
     $userId = $this->session->get(self::USER_ID_SESSION_KEY);
     if (!$token instanceof AccessToken) {
         return new RedirectResponse($this->router->generate('authenticate'));
     }
     $apiClient = $this->getApiClient($token);
     $selectedUsers = [];
     $message = null;
     $errors = [];
     if ($request->isMethod('POST')) {
         $selectedUsers = $request->request->get('users');
         $message = $request->request->get('message');
         $errors = $this->validate($selectedUsers, $message);
         if (count($errors) < 1) {
             $associatedUsers = (new Rudolph())->associateUsers($selectedUsers);
             $hash = md5(serialize($associatedUsers));
             $secretSanta = new SecretSanta($hash, $associatedUsers, $userId, str_replace('```', '', $message));
             (new SecretDispatcher($apiClient))->dispatchRemainingMessages($secretSanta);
             $request->getSession()->set($this->getSecretSantaSessionKey($secretSanta->getHash()), $secretSanta);
             return new RedirectResponse($this->router->generate('finish', ['hash' => $secretSanta->getHash()]));
         }
     }
     try {
         $userExtractor = new UserExtractor($apiClient);
         $users = $userExtractor->extractAll();
         $content = $this->twig->render('run.html.twig', ['users' => $users, 'selectedUsers' => $selectedUsers, 'message' => $message, 'errors' => $errors]);
         return new Response($content);
     } catch (\RuntimeException $e) {
         return new RedirectResponse($this->router->generate('authenticate'));
     }
 }
All Usage Examples Of Joli\SlackSecretSanta\UserExtractor::extractAll