OpenXE/classes/Modules/FiskalyApi/Data/CashPointClosing/TransactionSecurity.php

90 lines
1.9 KiB
PHP
Raw Normal View History

2021-05-21 08:49:41 +02:00
<?php
declare(strict_types=1);
namespace Xentral\Modules\FiskalyApi\Data\CashPointClosing;
use Xentral\Modules\FiskalyApi\Exception\InvalidArgumentException;
class TransactionSecurity
{
/** @var string|null $tssTxId */
private $tssTxId;
/** @var string|null $errorMessage */
private $errorMessage;
public function __construct(?string $tssTxId, ?string $errorMessage = null)
{
if($tssTxId === null && $errorMessage) {
throw new InvalidArgumentException('tssTxId or error_message must be not null');
}
$this->tssTxId = $tssTxId;
$this->errorMessage = $errorMessage;
}
/**
* @param $apiResult
*
* @return static
*/
public static function fromApiResult(object $apiResult): self
{
return new self($apiResult->tss_tx_id ?? null, $apiResult->error_message ?? null);
}
/**
* @param array $dbState
*
* @return static
*/
public static function fromDbState(array $dbState): self
{
return new self($dbState['tss_tx_id'] ?? null, $dbState['error_message'] ?? null);
}
/**
* @return null[]|string[]
*/
public function toArray(): array
{
if($this->tssTxId !== null) {
return ['tss_tx_id' => $this->getTssTxId()];
}
return ['error_message' => $this->getErrorMessage()];
}
/**
* @return string|null
*/
public function getTssTxId(): ?string
{
return $this->tssTxId;
}
/**
* @param string|null $tssTxId
*/
public function setTssTxId(?string $tssTxId): void
{
$this->tssTxId = $tssTxId;
}
/**
* @return string|null
*/
public function getErrorMessage(): ?string
{
return $this->errorMessage;
}
/**
* @param string|null $errorMessage
*/
public function setErrorMessage(?string $errorMessage): void
{
$this->errorMessage = $errorMessage;
}
}