<?php /** * Zend Framework * * LICENSE * * This source file is subject to the new BSD license that is bundled * with this package in the file LICENSE.txt. * It is also available through the world-wide-web at this URL: * http://framework.zend.com/license/new-bsd * If you did not receive a copy of the license and are unable to * obtain it through the world-wide-web, please send an email * to license@zend.com so we can send you a copy immediately. * * @category Zend * @package Zend_Service * @subpackage DeveloperGarden * @copyright Copyright (c) 2005-2014 Zend Technologies USA Inc. (http://www.zend.com) * @license http://framework.zend.com/license/new-bsd New BSD License * @version $Id$ */ /** * @see Zend_Service_DeveloperGarden_Client_ClientAbstract */ require_once 'Zend/Service/DeveloperGarden/Client/ClientAbstract.php'; /** * @see Zend_Service_DeveloperGarden_Response_BaseUserService_GetQuotaInformationResponse */ require_once 'Zend/Service/DeveloperGarden/Response/BaseUserService/GetQuotaInformationResponse.php'; /** * @see Zend_Service_DeveloperGarden_Response_BaseUserService_ChangeQuotaPoolResponse */ require_once 'Zend/Service/DeveloperGarden/Response/BaseUserService/ChangeQuotaPoolResponse.php'; /** * @see Zend_Service_DeveloperGarden_Response_BaseUserService_GetAccountBalanceResponse */ require_once 'Zend/Service/DeveloperGarden/Response/BaseUserService/GetAccountBalanceResponse.php'; /** * @see Zend_Service_DeveloperGarden_BaseUserService_AccountBalance */ require_once 'Zend/Service/DeveloperGarden/BaseUserService/AccountBalance.php'; /** * @see Zend_Service_DeveloperGarden_Request_BaseUserService_GetQuotaInformation */ require_once 'Zend/Service/DeveloperGarden/Request/BaseUserService/GetQuotaInformation.php'; /** * @see Zend_Service_DeveloperGarden_Request_BaseUserService_ChangeQuotaPool */ require_once 'Zend/Service/DeveloperGarden/Request/BaseUserService/ChangeQuotaPool.php'; /** * @see Zend_Service_DeveloperGarden_Request_BaseUserService_GetAccountBalance */ require_once 'Zend/Service/DeveloperGarden/Request/BaseUserService/GetAccountBalance.php'; /** * @category Zend * @package Zend_Service * @subpackage DeveloperGarden * @copyright Copyright (c) 2005-2014 Zend Technologies USA Inc. (http://www.zend.com) * @author Marco Kaiser * @license http://framework.zend.com/license/new-bsd New BSD License */ class Zend_Service_DeveloperGarden_BaseUserService extends Zend_Service_DeveloperGarden_Client_ClientAbstract { /** * wsdl file * * @var string */ protected $_wsdlFile = 'https://gateway.developer.telekom.com/p3gw-mod-odg-admin/services/ODGBaseUserService?wsdl'; /** * wsdl file local * * @var string */ protected $_wsdlFileLocal = 'Wsdl/ODGBaseUserService.wsdl'; /** * Response, Request Classmapping * * @var array * */ protected $_classMap = array( 'getQuotaInformationResponse' => 'Zend_Service_DeveloperGarden_Response_BaseUserService_GetQuotaInformationResponse', 'changeQuotaPoolResponse' => 'Zend_Service_DeveloperGarden_Response_BaseUserService_ChangeQuotaPoolResponse', 'getAccountBalanceResponse' => 'Zend_Service_DeveloperGarden_Response_BaseUserService_GetAccountBalanceResponse', 'AccountBalance' => 'Zend_Service_DeveloperGarden_BaseUserService_AccountBalance', ); /** * array with all QuotaModuleIds * * @var array */ protected $_moduleIds = array( 'SmsProduction' => 'SmsProduction', 'SmsSandbox' => 'SmsSandbox', 'VoiceCallProduction' => 'VoiceButlerProduction', 'VoiceCallSandbox' => 'VoiceButlerSandbox', 'ConferenceCallProduction' => 'CCSProduction', 'ConferenceCallSandbox' => 'CCSSandbox', 'LocalSearchProduction' => 'localsearchProduction', 'LocalSearchSandbox' => 'localsearchSandbox', 'IPLocationProduction' => 'IPLocationProduction', 'IPLocationSandbox' => 'IPLocationSandbox' ); /** * returns an array with all possible ModuleIDs * * @return array */ public function getModuleIds() { return $this->_moduleIds; } /** * checks the moduleId and throws exception if not valid * * @param string $moduleId * @throws Zend_Service_DeveloperGarden_Client_Exception * @return void */ protected function _checkModuleId($moduleId) { if (!in_array($moduleId, $this->_moduleIds)) { require_once 'Zend/Service/DeveloperGarden/Client/Exception.php'; throw new Zend_Service_DeveloperGarden_Client_Exception('moduleId not valid'); } } /** * returns the correct module string * * @param string $module * @param integer $environment * @return string */ protected function _buildModuleString($module, $environment) { $moduleString = $module; switch($environment) { case self::ENV_PRODUCTION : $moduleString .= 'Production'; break; case self::ENV_SANDBOX : $moduleString .= 'Sandbox'; break; default: require_once 'Zend/Service/DeveloperGarden/Client/Exception.php'; throw new Zend_Service_DeveloperGarden_Client_Exception( 'Not a valid environment supplied.' ); } if (!in_array($moduleString, $this->_moduleIds)) { require_once 'Zend/Service/DeveloperGarden/Client/Exception.php'; throw new Zend_Service_DeveloperGarden_Client_Exception( 'Not a valid module name supplied.' ); } return $moduleString; } /** * returns the request object with the specific moduleId * * @param string $moduleId * @return Zend_Service_DeveloperGarden_Response_BaseUserService_GetQuotaInformationResponse */ protected function _getRequestModule($moduleId) { return new Zend_Service_DeveloperGarden_Request_BaseUserService_GetQuotaInformation( $moduleId ); } /** * returns the request object with the specific moduleId and new quotaMax value * * @param string $moduleId * @param integer $quotaMax * @return Zend_Service_DeveloperGarden_Response_BaseUserService_GetQuotaInformationResponse */ protected function _getChangeRequestModule($moduleId, $quotaMax) { return new Zend_Service_DeveloperGarden_Request_BaseUserService_ChangeQuotaPool( $moduleId, $quotaMax ); } /** * returns the Quota Information for SMS Service * * @param int $environment * @return Zend_Service_DeveloperGarden_Response_BaseUserService_GetQuotaInformationResponse */ public function getSmsQuotaInformation($environment = self::ENV_PRODUCTION) { self::checkEnvironment($environment); $moduleId = $this->_buildModuleString('Sms', $environment); $request = $this->_getRequestModule($moduleId); return $this->getQuotaInformation($request); } /** * returns the Quota Information for VoiceCall Service * * @param int $environment * @return Zend_Service_DeveloperGarden_Response_BaseUserService_GetQuotaInformationResponse */ public function getVoiceCallQuotaInformation($environment = self::ENV_PRODUCTION) { self::checkEnvironment($environment); $moduleId = $this->_buildModuleString('VoiceButler', $environment); $request = $this->_getRequestModule($moduleId); return $this->getQuotaInformation($request); } /** * returns the Quota Information for SMS ConferenceCall * * @param int $environment * @return Zend_Service_DeveloperGarden_Response_BaseUserService_GetQuotaInformationResponse */ public function getConfernceCallQuotaInformation($environment = self::ENV_PRODUCTION) { self::checkEnvironment($environment); $moduleId = $this->_buildModuleString('CCS', $environment); $request = $this->_getRequestModule($moduleId); return $this->getQuotaInformation($request); } /** * returns the Quota Information for LocaleSearch Service * * @param int $environment * @return Zend_Service_DeveloperGarden_Response_BaseUserService_GetQuotaInformationResponse */ public function getLocalSearchQuotaInformation($environment = self::ENV_PRODUCTION) { self::checkEnvironment($environment); $moduleId = $this->_buildModuleString('localsearch', $environment); $request = $this->_getRequestModule($moduleId); return $this->getQuotaInformation($request); } /** * returns the Quota Information for IPLocation Service * * @param int $environment * @return Zend_Service_DeveloperGarden_Response_BaseUserService_GetQuotaInformationResponse */ public function getIPLocationQuotaInformation($environment = self::ENV_PRODUCTION) { self::checkEnvironment($environment); $moduleId = $this->_buildModuleString('IPLocation', $environment); $request = $this->_getRequestModule($moduleId); return $this->getQuotaInformation($request); } /** * returns the quota information * * @param Zend_Service_DeveloperGarden_Request_BaseUserService $request * @return Zend_Service_DeveloperGarden_Response_BaseUserService_GetQuotaInformationResponse */ public function getQuotaInformation( Zend_Service_DeveloperGarden_Request_BaseUserService_GetQuotaInformation $request ) { $this->_checkModuleId($request->getModuleId()); return $this->getSoapClient() ->getQuotaInformation($request) ->parse(); } /** * sets new user quota for the sms service * * @param integer $quotaMax * @param integer $environment * @return Zend_Service_DeveloperGarden_Response_BaseUserService_ChangeQuotaPoolResponse */ public function changeSmsQuotaPool($quotaMax = 0, $environment = self::ENV_PRODUCTION) { self::checkEnvironment($environment); $moduleId = $this->_buildModuleString('Sms', $environment); $request = $this->_getChangeRequestModule($moduleId, $quotaMax); return $this->changeQuotaPool($request); } /** * sets new user quota for the voice call service * * @param integer $quotaMax * @param integer $environment * @return Zend_Service_DeveloperGarden_Response_BaseUserService_ChangeQuotaPoolResponse */ public function changeVoiceCallQuotaPool($quotaMax = 0, $environment = self::ENV_PRODUCTION) { self::checkEnvironment($environment); $moduleId = $this->_buildModuleString('VoiceButler', $environment); $request = $this->_getChangeRequestModule($moduleId, $quotaMax); return $this->changeQuotaPool($request); } /** * sets new user quota for the IPLocation service * * @param integer $quotaMax * @param integer $environment * @return Zend_Service_DeveloperGarden_Response_BaseUserService_ChangeQuotaPoolResponse */ public function changeIPLocationQuotaPool($quotaMax = 0, $environment = self::ENV_PRODUCTION) { self::checkEnvironment($environment); $moduleId = $this->_buildModuleString('IPLocation', $environment); $request = $this->_getChangeRequestModule($moduleId, $quotaMax); return $this->changeQuotaPool($request); } /** * sets new user quota for the Conference Call service * * @param integer $quotaMax * @param integer $environment * @return Zend_Service_DeveloperGarden_Response_BaseUserService_ChangeQuotaPoolResponse */ public function changeConferenceCallQuotaPool($quotaMax = 0, $environment = self::ENV_PRODUCTION) { self::checkEnvironment($environment); $moduleId = $this->_buildModuleString('CCS', $environment); $request = $this->_getChangeRequestModule($moduleId, $quotaMax); return $this->changeQuotaPool($request); } /** * sets new user quota for the Local Search service * * @param integer $quotaMax * @param integer $environment * @return Zend_Service_DeveloperGarden_Response_BaseUserService_ChangeQuotaPoolResponse */ public function changeLocalSearchQuotaPool($quotaMax = 0, $environment = self::ENV_PRODUCTION) { self::checkEnvironment($environment); $moduleId = $this->_buildModuleString('localsearch', $environment); $request = $this->_getChangeRequestModule($moduleId, $quotaMax); return $this->changeQuotaPool($request); } /** * set new quota values for the defined module * * @param Zend_Service_DeveloperGarden_Request_BaseUserService_ChangeQuotaPool $request * @return Zend_Service_DeveloperGarden_Response_BaseUserService_ChangeQuotaPoolResponse */ public function changeQuotaPool( Zend_Service_DeveloperGarden_Request_BaseUserService_ChangeQuotaPool $request ) { $this->_checkModuleId($request->getModuleId()); return $this->getSoapClient() ->changeQuotaPool($request) ->parse(); } /** * get the result for a list of accounts * * @param array $accounts * @return Zend_Service_DeveloperGarden_Response_BaseUserService_GetAccountBalanceResponse */ public function getAccountBalance(array $accounts = array()) { $request = new Zend_Service_DeveloperGarden_Request_BaseUserService_GetAccountBalance( $accounts ); return $this->getSoapClient() ->getAccountBalance($request) ->parse(); } }