Skip to content

Commit 53c7b67

Browse files
committed
Handle DateTime during deserialization
1 parent d92fae6 commit 53c7b67

2 files changed

Lines changed: 16 additions & 4 deletions

File tree

lib/net/authorize/api/contract/v1/Mapper.php

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,11 @@ public function getClass(string $class, string $property){
4949

5050
if(isset($this->classes[$class]['properties'][$property]['type'])){
5151
$className = $this->classes[$class]['properties'][$property]['type'];
52-
if(substr( $className, 0, 5 ) === "array"){
52+
if (stripos($className, 'Date') !== false) {
53+
$obj->className = 'DateTime';
54+
$obj->isCustomDefined = false;
55+
}
56+
if(substr( $className, 0, 5 ) === "array") {
5357
$className = ltrim($className, 'array<');
5458
$className = rtrim($className, '>');
5559
$obj->isArray = true;
@@ -61,10 +65,10 @@ public function getClass(string $class, string $property){
6165
$obj->isInlineArray = $this->classes[$class]['properties'][$property]['xml_list']['inline'];
6266
$obj->arrayEntryname = $this->classes[$class]['properties'][$property]['xml_list']['entry_name'];
6367
}
68+
$obj->className = $className;
69+
$obj->isCustomDefined = stripos($className, '\\') !== false;
6470
}
65-
$obj->className = $className;
66-
$obj->isCustomDefined = stripos($className, '\\') !== false;
67-
71+
6872
return $obj;
6973
}
7074
else if(get_parent_class($class)){

scripts/appendSetCode.txt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,11 @@
1919
$this->{'addTo' . $key}($type);
2020
}
2121
}
22+
else ($classDetails->className === 'DateTime') {
23+
foreach($value AS $keyChild => $valueChild) {
24+
$this->{'addTo' . $key}($valueChild);
25+
}
26+
}
2227
else {
2328
foreach($value AS $keyChild => $valueChild) {
2429
$this->{'addTo' . $key}($valueChild);
@@ -31,6 +36,9 @@
3136
$type->set($value);
3237
$this->{'set' . $key}($type);
3338
}
39+
else if ($classDetails->className === 'DateTime') {
40+
$this->{'set' . $key}($value);
41+
}
3442
else {
3543
$this->{'set' . $key}($value);
3644
}

0 commit comments

Comments
 (0)