1 <?php
 2  3  4 
 5 namespace Team3\PayU\Communication\Process\ResponseDeserializer;
 6 
 7 use Psr\Log\LoggerInterface;
 8 use Team3\PayU\Communication\Response\OrderCancelResponse;
 9 use Team3\PayU\Communication\Response\OrderCreateResponse;
10 use Team3\PayU\Communication\Response\OrderRetrieveResponse;
11 use Team3\PayU\Communication\Response\ResponseInterface;
12 use Team3\PayU\Serializer\SerializerFactory;
13 use Team3\PayU\Serializer\SerializerInterface;
14 
15 class ResponseDeserializerFactory implements ResponseDeserializerFactoryInterface
16 {
17     18 19 20 21 
22     public function build(LoggerInterface $logger)
23     {
24         $deserializer = new ResponseDeserializer($this->getSerializer($logger));
25         $deserializer->setResponses($this->getResponses());
26 
27         return $deserializer;
28     }
29 
30     31 32 33 34 
35     private function getSerializer(LoggerInterface $logger)
36     {
37         $serializerFactory = new SerializerFactory();
38 
39         return $serializerFactory->build($logger);
40     }
41 
42     43 44 
45     private function getResponses()
46     {
47         return [
48             new OrderCreateResponse(),
49             new OrderRetrieveResponse(),
50             new OrderCancelResponse()
51         ];
52     }
53 }
54