Skip to content

Commit f7b3bb2

Browse files
committed
DateTime and Date type handling during Serialization
1 parent 613d7f6 commit f7b3bb2

3 files changed

Lines changed: 32 additions & 17 deletions

File tree

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

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,10 @@ 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 (stripos($className, 'DateTime') !== false) {
52+
if (stripos($className, "DateTime<'Y-m-d'>") !== false) {
53+
$className = 'Date';
54+
}
55+
else if (stripos($className, "DateTime") !== false) {
5356
$className = 'DateTime';
5457
}
5558
if(substr( $className, 0, 5 ) === "array") {

scripts/appendJsonSeralizeCode.txt

Lines changed: 26 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -6,22 +6,34 @@
66
});
77
// echo __CLASS__ . "\n";
88
foreach($values as $key => $value){
9-
if (isset($value) && is_array($value)){
10-
11-
echo "key - $key \n";
12-
echo "value - $value \n";
13-
9+
$classDetails = (new \net\authorize\api\contract\v1\Mapper)->getClass(get_class() , $key);
10+
if (isset($value)){
1411
$classDetails = (new \net\authorize\api\contract\v1\Mapper)->getClass(get_class() , $key);
15-
if (!$classDetails->isInlineArray){
16-
17-
// $subKey = str_replace("Type", "", lcfirst((new \ReflectionClass($value[0]))->getShortName()));
18-
$subKey = $classDetails->arrayEntryname;
19-
$subArray = [$subKey => $value];
20-
$values[$key] = $subArray;
21-
echo "subkey - $subKey \n";
12+
if ($classDetails->className === 'Date'){
13+
// echo($value->format('Y-m-d H:i:s')."\n");
14+
$dateTime = $value->format('Y-m-d');
15+
$values[$key] = $dateTime;
16+
//echo($dateTime."\n");
17+
}
18+
else if ($classDetails->className === 'DateTime'){
19+
// echo($value->format('Y-m-d H:i:s')."\n");
20+
$dateTime = $value->format('Y-m-d\TH-i-s.\0\0\0\Z');
21+
$values[$key] = $dateTime;
22+
//echo($dateTime."\n");
23+
}
24+
if (is_array($value)){
25+
26+
//echo "key - $key \n";
27+
//echo "value - $value \n";
28+
if (!$classDetails->isInlineArray){
29+
30+
// $subKey = str_replace("Type", "", lcfirst((new \ReflectionClass($value[0]))->getShortName()));
31+
$subKey = $classDetails->arrayEntryname;
32+
$subArray = [$subKey => $value];
33+
$values[$key] = $subArray;
34+
//echo "subkey - $subKey \n";
35+
}
2236
}
23-
24-
var_dump($value);
2537
}
2638
}
2739
if (get_parent_class() == ""){

scripts/appendSetCode.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
$this->{'addTo' . $key}($type);
2020
}
2121
}
22-
else if ($classDetails->className === 'DateTime') {
22+
else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
2323
foreach($value AS $keyChild => $valueChild) {
2424
$type = new \DateTime($valueChild);
2525
$this->{'addTo' . $key}($type);
@@ -37,7 +37,7 @@
3737
$type->set($value);
3838
$this->{'set' . $key}($type);
3939
}
40-
else if ($classDetails->className === 'DateTime') {
40+
else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
4141
$type = new \DateTime($value);
4242
$this->{'set' . $key}($type);
4343
}

0 commit comments

Comments
 (0)