1 <?php
  2   3   4 
  5 namespace Team3\PayU\Communication\Response;
  6 
  7 use Team3\PayU\Communication\Request\OrderRetrieveRequest;
  8 use Team3\PayU\Communication\Request\PayURequestInterface;
  9 use Team3\PayU\Communication\Request\Model\RequestStatus;
 10 use Team3\PayU\Order\Model\OrderInterface;
 11 use JMS\Serializer\Annotation as JMS;
 12 
 13  14  15  16  17  18  19 
 20 class OrderRetrieveResponse implements ResponseInterface
 21 {
 22      23  24  25  26 
 27     private $orders;
 28 
 29      30  31  32  33 
 34     private $requestStatus;
 35 
 36      37  38  39  40 
 41     public function supports(PayURequestInterface $payURequest)
 42     {
 43         return $payURequest instanceof OrderRetrieveRequest;
 44     }
 45 
 46      47  48 
 49     public function getOrders()
 50     {
 51         return $this->orders;
 52     }
 53 
 54      55  56  57  58 
 59     public function setOrders(array $orders)
 60     {
 61         $this->orders = $orders;
 62 
 63         return $this;
 64     }
 65 
 66      67  68 
 69     public function getRequestStatus()
 70     {
 71         return $this->requestStatus;
 72     }
 73 
 74      75  76  77  78 
 79     public function setRequestStatus($requestStatus)
 80     {
 81         $this->requestStatus = $requestStatus;
 82 
 83         return $this;
 84     }
 85 
 86      87  88 
 89     public function getOrdersCount()
 90     {
 91         return count($this->orders);
 92     }
 93 
 94      95  96  97 
 98     public function getFirstOrder()
 99     {
100         if (0 === $this->getOrdersCount()) {
101             throw new NoOrdersInResponseException(
102                 'There is no order in OrderRetrieveResponse.'
103             );
104         }
105 
106         return $this->orders[0];
107     }
108 }
109