PayU integration by Krzysztof Gzocha
  • Namespace
  • Class

Namespaces

  • Team3
    • PayU
      • Annotation
      • Communication
        • CurlRequestBuilder
        • HttpStatusParser
        • Notification
        • Process
          • NotificationProcess
          • ResponseDeserializer
        • Request
          • Model
        • Response
          • Model
        • Sender
      • Configuration
        • Credentials
      • Order
        • Autocomplete
          • Strategy
        • Model
          • Buyer
          • Money
          • Products
          • ShippingMethods
          • Traits
        • Transformer
          • UserOrder
            • Strategy
              • Product
              • ShippingMethod
      • PropertyExtractor
        • Reader
      • Serializer
      • SignatureCalculator
        • Encoder
          • Algorithms
          • Strategy
        • ParametersSorter
        • Validator
      • ValidatorBuilder

Classes

  • Team3\PayU\ValidatorBuilder\ValidatorBuilder

Interfaces

  • Team3\PayU\ValidatorBuilder\ValidatorBuilderInterface
 1 <?php
 2 /**
 3  * @author Krzysztof Gzocha <krzysztof.gzocha@xsolve.pl>
 4  */
 5 namespace Team3\PayU\Order\Transformer\UserOrder;
 6 
 7 use Team3\PayU\Order\Model\Order;
 8 use Team3\PayU\Order\Model\OrderInterface;
 9 use Team3\PayU\PropertyExtractor\ExtractorInterface;
10 use Team3\PayU\PropertyExtractor\ExtractorResult;
11 use Team3\PayU\Order\Transformer\UserOrder\Strategy\UserOrderTransformerStrategyInterface;
12 
13 class UserOrderTransformer implements UserOrderTransformerInterface
14 {
15     /**
16      * @var UserOrderTransformerStrategyInterface[]
17      */
18     protected $strategies;
19 
20     /**
21      * @var ExtractorInterface
22      */
23     protected $extractor;
24 
25     /**
26      * @param ExtractorInterface $extractor
27      */
28     public function __construct(ExtractorInterface $extractor)
29     {
30         $this->extractor = $extractor;
31         $this->strategies = [];
32     }
33 
34     /**
35      * @inheritdoc
36      */
37     public function transform(OrderInterface $order, $userOrder)
38     {
39         foreach ($this->getExtractedResults($userOrder) as $extractionResult) {
40             foreach ($this->strategies as $strategy) {
41                 if ($strategy->supports($extractionResult->getPropertyName())) {
42                     $strategy->transform(
43                         $order,
44                         $extractionResult
45                     );
46                 }
47             }
48         }
49 
50         return $order;
51     }
52 
53     /**
54      * @param UserOrderTransformerStrategyInterface $userOrderTransformerStrategy
55      */
56     public function addStrategy(
57         UserOrderTransformerStrategyInterface $userOrderTransformerStrategy
58     ) {
59         $this->strategies[] = $userOrderTransformerStrategy;
60     }
61 
62     /**
63      * @param $userOrder
64      *
65      * @return ExtractorResult[]
66      */
67     protected function getExtractedResults($userOrder)
68     {
69         return $this
70             ->extractor
71             ->extract($userOrder);
72     }
73 }
74 
PayU integration by Krzysztof Gzocha API documentation generated by ApiGen