hasAmount()) { $result['amount'] = $this->serializeAmount($request->getAmount()); } if ($request->hasTransfers()) { $result['transfers'] = $this->serializeTransfers($request->getTransfers()); } if ($request->hasReceipt() && $request->getReceipt()->notEmpty()) { $result['receipt'] = $request->getReceipt()->toArray(); } if ($request->hasAirline()) { $result['airline'] = $request->getAirline()->toArray(); } if ($request->hasDeal()) { $result['deal'] = $request->getDeal()->toArray(); } return $result; } private function serializeAmount(AmountInterface $amount) { return array( 'value' => $amount->getValue(), 'currency' => $amount->getCurrency(), ); } /** * @param TransferInterface[] $transfers * * @return array */ private function serializeTransfers(array $transfers) { $result = array(); foreach ($transfers as $transfer) { $item = array( 'account_id' => $transfer->getAccountId(), 'amount' => $this->serializeAmount($transfer->getAmount()) ); if ($transfer->hasPlatformFeeAmount()) { $item['platform_fee_amount'] = $this->serializeAmount($transfer->getPlatformFeeAmount()); } if ($transfer->hasDescription()) { $item['description'] = $transfer->getDescription(); } $result[] = $item; } return $result; } }