Laravel AT Protocol Client (alpha & unstable)
at main 47 lines 1.5 kB view raw
1<?php 2 3namespace SocialDept\AtpClient\Data\Responses\Atproto\Server; 4 5use Illuminate\Contracts\Support\Arrayable; 6 7/** 8 * @implements Arrayable<string, mixed> 9 */ 10class DescribeServerResponse implements Arrayable 11{ 12 /** 13 * @param array<string> $availableUserDomains 14 */ 15 public function __construct( 16 public readonly string $did, 17 public readonly array $availableUserDomains, 18 public readonly ?bool $inviteCodeRequired = null, 19 public readonly ?bool $phoneVerificationRequired = null, 20 public readonly ?array $links = null, 21 public readonly ?array $contact = null, 22 ) {} 23 24 public static function fromArray(array $data): self 25 { 26 return new self( 27 did: $data['did'], 28 availableUserDomains: $data['availableUserDomains'] ?? [], 29 inviteCodeRequired: $data['inviteCodeRequired'] ?? null, 30 phoneVerificationRequired: $data['phoneVerificationRequired'] ?? null, 31 links: $data['links'] ?? null, 32 contact: $data['contact'] ?? null, 33 ); 34 } 35 36 public function toArray(): array 37 { 38 return [ 39 'did' => $this->did, 40 'availableUserDomains' => $this->availableUserDomains, 41 'inviteCodeRequired' => $this->inviteCodeRequired, 42 'phoneVerificationRequired' => $this->phoneVerificationRequired, 43 'links' => $this->links, 44 'contact' => $this->contact, 45 ]; 46 } 47}