web/lib/Zend/Service/DeveloperGarden/BaseUserService.php
changeset 64 162c1de6545a
parent 19 1c2f13fd785c
child 68 ecaf28ffe26e
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/lib/Zend/Service/DeveloperGarden/BaseUserService.php	Fri Mar 11 15:05:35 2011 +0100
@@ -0,0 +1,399 @@
+<?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-2010 Zend Technologies USA Inc. (http://www.zend.com)
+ * @license    http://framework.zend.com/license/new-bsd     New BSD License
+ * @version    $Id: BaseUserService.php 20166 2010-01-09 19:00:17Z bkarwin $
+ */
+
+/**
+ * @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-2010 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();
+    }
+}