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