10 changed files with 79 additions and 27 deletions
			
			
		@ -0,0 +1,52 @@ | 
				
			|||
<?php | 
				
			|||
 | 
				
			|||
namespace Darksparrow\DeegraphInteractions\DataStructures; | 
				
			|||
 | 
				
			|||
use DateTime; | 
				
			|||
 | 
				
			|||
class DeegraphNodeDetails | 
				
			|||
{ | 
				
			|||
    public string $ID; | 
				
			|||
    public DateTime $CreatedAt; | 
				
			|||
    public string $CreatorID; | 
				
			|||
 | 
				
			|||
    public array $OtherProperties; | 
				
			|||
 | 
				
			|||
    public function __construct(array $nodeDetails) | 
				
			|||
    { | 
				
			|||
        $this->ID = $nodeDetails["@id"]; | 
				
			|||
        $this->CreatedAt = new DateTime($nodeDetails["@created"]); | 
				
			|||
        $this->CreatorID = $nodeDetails["@creator"]; | 
				
			|||
 | 
				
			|||
        foreach($nodeDetails as $key=>$value) { | 
				
			|||
            switch($key) | 
				
			|||
            { | 
				
			|||
                case "@id": | 
				
			|||
                    $this->ID = $value; | 
				
			|||
                    break; | 
				
			|||
                case "@created": | 
				
			|||
                    $this->CreatedAt = new DateTime($value); | 
				
			|||
                    break; | 
				
			|||
                case "@creator": | 
				
			|||
                    $this->CreatorID = $value; | 
				
			|||
                    break; | 
				
			|||
                default: | 
				
			|||
                    $this->OtherProperties[$key] = $value; | 
				
			|||
                    break; | 
				
			|||
            } | 
				
			|||
        } | 
				
			|||
    } | 
				
			|||
 | 
				
			|||
    public function AsJSON(): string | 
				
			|||
    { | 
				
			|||
        $builder = [ | 
				
			|||
            "@id" => $this->ID, | 
				
			|||
            "@created" => $this->CreatedAt->format(format: 'Y-m-d\TH:i:s.v\Z'), | 
				
			|||
            "@creator" => $this->CreatorID, | 
				
			|||
        ]; | 
				
			|||
        foreach($this->OtherProperties as $key=>$value) { | 
				
			|||
            $builder[$key] = $value; | 
				
			|||
        } | 
				
			|||
        return json_encode($builder); | 
				
			|||
    } | 
				
			|||
} | 
				
			|||
					Loading…
					
					
				
		Reference in new issue