From 7bd049e7af294d6c7698898ab00cc5d782e039be Mon Sep 17 00:00:00 2001 From: Ignatenkov Nikita Date: Mon, 21 Mar 2016 01:54:59 +0300 Subject: [PATCH] base method, send and status for one message voice --- AutoloadExample.php | 14 ----- ClientVoice.php | 134 ++++++++++++++++++++++++++++++++++++++++++++ composer.json | 3 +- 3 files changed, 136 insertions(+), 15 deletions(-) delete mode 100644 AutoloadExample.php create mode 100644 ClientVoice.php diff --git a/AutoloadExample.php b/AutoloadExample.php deleted file mode 100644 index 2bf7a7c..0000000 --- a/AutoloadExample.php +++ /dev/null @@ -1,14 +0,0 @@ - 'Внутренняя ошибка', + 100 => 'Не все поля (параметры) были указаны', + 200 => 'Неверный логин/пароль, либо пользователь не является «особенным» - необходим Статус «привилегированного пользователя»', + 300 => 'MID <= 0 (идентификатор указан некорректно)', + 400 => 'Сообщение с указанным ID не найдено или сообщение находится в обработке (т.е. состояние рассылки, в которую входят номера телефонов, имеет одно из состояний: «постановка в очередь», «подтверждена (ожидает начала)» или «завершается»)', + 2100 => 'Для пользователя не включен функционал голосовых рассылок' + ]; + } + + public function init() + { + $this->_client = new Client([ + 'baseUrl' => $this->url, + 'requestConfig' => [ + 'format' => Client::FORMAT_URLENCODED + ], + 'responseConfig' => [ + 'format' => Client::FORMAT_JSON + ], + ]); + + parent::init(); // TODO: Change the autogenerated stub + } + + /** + * Private method to send request for all methods + * @param $url + * @param $params + * @param string $format + * @return Response + */ + private function _send($url, $params, $format = 'post') + { + $data = ArrayHelper::merge([ + 'login' => $this->login, + 'pass' => $this->pass + ], $params); + + return $this->_client->createRequest()->setUrl($url)->setMethod($format)->setData($data)->send(); + } + + public function sendMessage($params) + { + /** @var Response $response */ + $response = $this->_send('submit_acmessage', $params, 'post'); + return $response->isOk ? $response->content : $this->getError('errorsForSendMessage', $response->content); + } + + public function sendMessages() + { + // todo implement + } + + public function uploadVoiceFile() + { + // todo implement + } + + public function listVoiceFiles() + { + // todo implement + } + + public function deleteVoiceFile() + { + // todo implement + } + + public function listZoneTariff() + { + // todo implement + } + + public function statusOneMessage($mid) + { + /** @var Response $response */ + $response = $this->_send('status_acmessage', ['mid' => $mid], 'post'); + return $response->isOk ? $response->content : $this->getError('errorsForStatusMessage', $response->content); + } + + public function statusMessages() + { + // todo implement + } + + /** + * Method return error text + * @param $name string name array to find + * @param $code integer code error + * @return mixed + */ + public function getError($name, $code) + { + $errors = call_user_func('self::' . $name); + return ArrayHelper::getValue($errors, $code); + } + +} \ No newline at end of file diff --git a/composer.json b/composer.json index 853ccd4..a0bae74 100644 --- a/composer.json +++ b/composer.json @@ -15,7 +15,8 @@ } ], "require": { - "yiisoft/yii2": "*" + "yiisoft/yii2": "*", + "yiisoft/yii2-httpclient": "~2.0.0" }, "autoload": { "psr-4": {