diff -r bd595ad770fc -r 1c2f13fd785c web/enmi/Zend/Service/DeveloperGarden/BaseUserService.php --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/web/enmi/Zend/Service/DeveloperGarden/BaseUserService.php Thu Jan 20 19:30:54 2011 +0100 @@ -0,0 +1,399 @@ + + '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(); + } +}