Exemplo n.º 1
0
 /**
  * Add a channel into help desk setting
  *
  * <b>Request Type: </b>PUT<br/>
  * <b>Request Endpoint: </b>http://{server-domain}/api/helpdesk/setting/add-channel<br/>
  * <b>Content-type: </b>Application/json<br/>
  * <b>Summary: </b>This api is for adding a channel into help desk setting.<br/>
  *
  * <b>Request Example: </b>
  * <pre>
  *     {
  *          "settingId": '52d791327ae252f9149547cb',
  *          "channelId": '52d791307ae252f9149547c9'
  *     }
  * </pre>
  */
 public function actionAddChannel()
 {
     $settingId = $this->getParams('settingId');
     $channelIdStr = $this->getParams('channelId');
     $accountId = $this->getAccountId();
     if (!empty($channelIdStr) && !empty($settingId)) {
         $channelIds = explode(',', $channelIdStr);
         $helpDeskSetting = HelpDeskSetting::getInstance($accountId);
         $customerServicesSessionExpire = intval($helpDeskSetting->maxWaitTime) * 60 * 1000;
         $channels = [];
         foreach ($channelIds as $channelId) {
             array_push($channels, ['id' => $channelId, 'isSet' => false]);
             $accessToken = Token::createForWechat($accountId);
             Yii::$app->weConnect->updateCustomerServiceSetting($channelId, $customerServicesSessionExpire, $accessToken->accessToken);
         }
         $settingId = new \MongoId($settingId);
         // Add a channel into help desk setting
         $result = HelpDeskSetting::updateAll(['$addToSet' => ['channels' => ['$each' => $channels]]], ['_id' => $settingId]);
         if ($result) {
             return $channels;
         }
         throw new ServerErrorHttpException('add channel fail');
     }
     throw new BadRequestHttpException('parameters missing');
 }