Skip to content

Commit c13e4d2

Browse files
committed
Fix upload segments when is 0.
1 parent a86a532 commit c13e4d2

File tree

1 file changed

+15
-12
lines changed

1 file changed

+15
-12
lines changed

src/EbicsClient.php

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -482,18 +482,21 @@ private function uploadTransaction(callable $requestClosure): UploadTransaction
482482
$uploadSegment = $this->responseHandler->extractUploadSegment($request, $response);
483483
$transaction->setInitialization($uploadSegment);
484484

485-
$segment = $this->segmentFactory->createTransferSegment();
486-
$segment->setTransactionKey($transaction->getKey());
487-
$segment->setSegmentNumber(1);
488-
$segment->setIsLastSegment(true);
489-
$segment->setNumSegments($transaction->getNumSegments());
490-
$segment->setOrderData($transaction->getOrderData());
491-
$segment->setTransactionId($transaction->getInitialization()->getTransactionId());
492-
493-
if ($segment->getTransactionId()) {
494-
$transaction->addSegment($segment);
495-
$transaction->setKey($segment->getTransactionId());
496-
$this->transferTransfer($transaction);
485+
// Segments can be many but requires realization of buffering.
486+
if ($transaction->getNumSegments() === 1) {
487+
$segment = $this->segmentFactory->createTransferSegment();
488+
$segment->setTransactionKey($transaction->getKey());
489+
$segment->setSegmentNumber(1);
490+
$segment->setIsLastSegment(true);
491+
$segment->setNumSegments($transaction->getNumSegments());
492+
$segment->setOrderData($transaction->getOrderData());
493+
$segment->setTransactionId($transaction->getInitialization()->getTransactionId());
494+
495+
if ($segment->getTransactionId()) {
496+
$transaction->addSegment($segment);
497+
$transaction->setKey($segment->getTransactionId());
498+
$this->transferTransfer($transaction);
499+
}
497500
}
498501

499502
return $transaction;

0 commit comments

Comments
 (0)