Ejemplo n.º 1
0
 /**
  * @return Payone_Protocol_Filter_Interface[]
  */
 protected function buildFiltersDefault()
 {
     $filterMaskValue = new Payone_Protocol_Filter_MaskValue();
     $filterMaskValue->setConfigPercent(50);
     // @todo hs: This default value should be defined somewhere else, configuration?.
     $filters = array(0 => $filterMaskValue);
     return $filters;
 }
Ejemplo n.º 2
0
 /**
  * @param array $protocolConfig
  * @param string $factoryKey
  * @return Payone_Protocol_Service_Protocol_Abstract
  */
 protected function buildServiceProtocol(array $protocolConfig, $factoryKey)
 {
     $serviceProtocol = $this->getFactory($factoryKey)->buildServiceProtocolRequest();
     $serviceApplyFilters = $this->getFactory(self::KEY_PROTOCOL)->buildServiceApplyFilters();
     // Load filters by config:
     if (array_key_exists('filter', $protocolConfig)) {
         foreach ($protocolConfig['filter'] as $key => $options) {
             if ($options['enabled'] === TRUE || $options['enabled'] === 1) {
                 // @todo hs: un-elegant, kann man das hier ohne switch machen?
                 switch ($key) {
                     case Payone_Protocol_Filter_MaskValue::FILTER_KEY:
                         $filterMaskValue = new Payone_Protocol_Filter_MaskValue();
                         $filterMaskValue->setConfig('percent', $options['percent']);
                         $serviceApplyFilters->addFilter($filterMaskValue);
                         break;
                     case Payone_Protocol_Filter_MaskAllValue::FILTER_KEY:
                         $filterMaskAllValue = new Payone_Protocol_Filter_MaskAllValue();
                         $serviceApplyFilters->addFilter($filterMaskAllValue);
                         break;
                 }
             }
         }
     }
     $serviceProtocol->setServiceApplyFilters($serviceApplyFilters);
     if (array_key_exists('loggers', $protocolConfig)) {
         $loggerConfig = $protocolConfig['loggers'];
         if (is_array($loggerConfig) and count($loggerConfig) > 0) {
             foreach ($loggerConfig as $className => $options) {
                 if (class_exists($className)) {
                     /** @var $logger Payone_Protocol_Logger_Interface * */
                     $logger = new $className();
                     if (method_exists($logger, 'setConfig')) {
                         $logger->setConfig($options);
                     }
                     $serviceProtocol->addLogger($logger);
                 }
             }
         }
     }
     // @todo hs: repository section, for now as a separate array, could this be combined with the loggers?
     if (array_key_exists('repositories', $protocolConfig)) {
         $respositoryConfig = $protocolConfig['repositories'];
         if (is_array($respositoryConfig) and count($respositoryConfig) > 0) {
             foreach ($respositoryConfig as $className => $options) {
                 if (class_exists($className)) {
                     // @todo hs: what do we do with Payone_Api_Persistence_Interface?
                     /** @var $repository Payone_TransactionStatus_Persistence_Interface * */
                     $repository = new $className();
                     if (method_exists($repository, 'setConfig')) {
                         $repository->setConfig($options);
                     }
                     $serviceProtocol->addRepository($repository);
                 }
             }
         }
     }
     return $serviceProtocol;
 }