refactor: use epoch timestamp

Signed-off-by: Sebastian Krupinski <krupinski01@gmail.com>
This commit is contained in:
2026-07-04 18:21:10 -04:00
parent fe78426a5d
commit 58a9c4351d
5 changed files with 120 additions and 28 deletions
@@ -9,6 +9,8 @@ declare(strict_types=1);
namespace KTXF\Resource\Provider\Node;
use KTXF\Utile\Timestamp;
/**
* Abstract Node Mutable Class
*
@@ -56,19 +58,21 @@ abstract class NodeMutableAbstract extends NodeBaseAbstract implements NodeMutab
}
if (isset($data[static::PROPERTY_CREATED])) {
if (!is_string($data[static::PROPERTY_CREATED])) {
throw new \InvalidArgumentException("Created date must be a string in ISO 8601 format");
$created = Timestamp::normalize($data[static::PROPERTY_CREATED]);
if ($created === null) {
throw new \InvalidArgumentException("Created date must be a valid epoch millisecond or ISO 8601 date");
}
$this->data[static::PROPERTY_CREATED] = $data[static::PROPERTY_CREATED];
$this->data[static::PROPERTY_CREATED] = $created;
} else {
$this->data[static::PROPERTY_CREATED] = null;
}
if (isset($data[static::PROPERTY_MODIFIED])) {
if (!is_string($data[static::PROPERTY_MODIFIED])) {
throw new \InvalidArgumentException("Modified date must be a string in ISO 8601 format");
$modified = Timestamp::normalize($data[static::PROPERTY_MODIFIED]);
if ($modified === null) {
throw new \InvalidArgumentException("Modified date must be a valid epoch millisecond or ISO 8601 date");
}
$this->data[static::PROPERTY_MODIFIED] = $data[static::PROPERTY_MODIFIED];
$this->data[static::PROPERTY_MODIFIED] = $modified;
} else {
$this->data[static::PROPERTY_MODIFIED] = null;
}