/** * @return SearchMessagesPayload */ protected function createPayload() { $payload = new SearchMessagesPayload(); $payload->setQuery($this->input->getArgument('query')); $payload->setSort($this->input->getOption('sort')); $payload->setSortDir($this->input->getOption('sort-dir')); $payload->setPage($this->input->getOption('page')); $payload->setCount($this->input->getOption('count')); $payload->setHighlight($this->input->getOption('highlight')); return $payload; }
/** * @return bool True if the request was handled successfully, false otherwise */ public function search($query, $sort = 'timestamp', $sortDir = 'desc', $perPage = 1000) { $payload = new SearchMessagesPayload(); $payload->setQuery($query); $payload->setPage($perPage); $payload->setSort($sort); $payload->setSortDir($sortDir); $response = $this->apiClient->send($payload); if ($response->isOk()) { return array_filter(array_map(function (MessageResultItem $message) { try { return $this->messageBuilder->getMessage($message); } catch (\Exception $e) { return null; } }, $response->getResult()->getMatches()), function ($message) { return null !== $message; }); } else { throw new SlackApiException($response->getError()); } }