Skip to content

Commit

Permalink
Use constants instead of hardcoded values
Browse files Browse the repository at this point in the history
  • Loading branch information
iranianpep committed Dec 13, 2017
1 parent 1fc7d00 commit 9ce859a
Showing 1 changed file with 26 additions and 25 deletions.
51 changes: 26 additions & 25 deletions src/Botonomous/client/ApiClient.php
Original file line number Diff line number Diff line change
Expand Up @@ -16,27 +16,28 @@ class ApiClient extends AbstractClient
{
const BASE_URL = 'https://slack.com/api/';
const CONTENT_TYPE = 'application/x-www-form-urlencoded';
const REQUIRED_KEY = 'required';
const OPTIONAL_KEY = 'optional';
const REQUIRED_ARGUMENTS_KEY = 'required';
const OPTIONAL_ARGUMENTS_KEY = 'optional';
const TOKEN_ARGUMENT_KEY = 'token';

private $arguments = [
'rtm.start' => [
self::REQUIRED_KEY => [
'token',
self::REQUIRED_ARGUMENTS_KEY => [
self::TOKEN_ARGUMENT_KEY,
],
self::OPTIONAL_KEY => [
self::OPTIONAL_ARGUMENTS_KEY => [
'simple_latest',
'no_unreads',
'mpim_aware',
],
],
'chat.postMessage' => [
self::REQUIRED_KEY => [
'token',
self::REQUIRED_ARGUMENTS_KEY => [
self::TOKEN_ARGUMENT_KEY,
'channel',
'text',
],
self::OPTIONAL_KEY => [
self::OPTIONAL_ARGUMENTS_KEY => [
'parse',
'link_names',
'attachments',
Expand All @@ -49,36 +50,36 @@ class ApiClient extends AbstractClient
],
],
'oauth.access' => [
self::REQUIRED_KEY => [
self::REQUIRED_ARGUMENTS_KEY => [
'client_id',
'client_secret',
'code',
],
self::OPTIONAL_KEY => [
self::OPTIONAL_ARGUMENTS_KEY => [
'redirect_uri',
],
],
'team.info' => [
self::REQUIRED_KEY => [
'token',
self::REQUIRED_ARGUMENTS_KEY => [
self::TOKEN_ARGUMENT_KEY,
],
],
'im.list' => [
self::REQUIRED_KEY => [
'token',
self::REQUIRED_ARGUMENTS_KEY => [
self::TOKEN_ARGUMENT_KEY,
],
],
'users.list' => [
self::REQUIRED_KEY => [
'token',
self::REQUIRED_ARGUMENTS_KEY => [
self::TOKEN_ARGUMENT_KEY,
],
self::OPTIONAL_KEY => [
self::OPTIONAL_ARGUMENTS_KEY => [
'presence',
],
],
'users.info' => [
self::REQUIRED_KEY => [
'token',
self::REQUIRED_ARGUMENTS_KEY => [
self::TOKEN_ARGUMENT_KEY,
'user',
],
],
Expand Down Expand Up @@ -192,7 +193,7 @@ private function processResponse(ResponseInterface $response)
public function getArgs():array
{
return [
'token' => $this->getToken(),
self::TOKEN_ARGUMENT_KEY => $this->getToken(),
'username' => $this->getConfig()->get('botUsername'),
'as_user' => $this->getConfig()->get('asUser'),
'icon_url' => $this->getConfig()->get('iconURL'),
Expand Down Expand Up @@ -360,11 +361,11 @@ private function validateRequiredArguments(string $method, array $arguments)
{
$validArguments = $this->getArguments($method);

if (empty($validArguments[self::REQUIRED_KEY])) {
if (empty($validArguments[self::REQUIRED_ARGUMENTS_KEY])) {
return true;
}

foreach ($validArguments[self::REQUIRED_KEY] as $argument) {
foreach ($validArguments[self::REQUIRED_ARGUMENTS_KEY] as $argument) {
if ($this->getArrayUtility()->arrayKeyValueExists($argument, $arguments) !== true) {
throw new BotonomousException("{$argument} must be provided for {$method}");
}
Expand Down Expand Up @@ -416,11 +417,11 @@ public function filterArguments(string $method, array $arguments): array
return $arguments;
}

if (!isset($validArguments[self::OPTIONAL_KEY])) {
$validArguments[self::OPTIONAL_KEY] = [];
if (!isset($validArguments[self::OPTIONAL_ARGUMENTS_KEY])) {
$validArguments[self::OPTIONAL_ARGUMENTS_KEY] = [];
}

$extractedArguments = array_merge($validArguments[self::REQUIRED_KEY], $validArguments[self::OPTIONAL_KEY]);
$extractedArguments = array_merge($validArguments[self::REQUIRED_ARGUMENTS_KEY], $validArguments[self::OPTIONAL_ARGUMENTS_KEY]);

return $this->getArrayUtility()->filterArray($arguments, $extractedArguments);
}
Expand Down

0 comments on commit 9ce859a

Please sign in to comment.