Laravel AT Protocol Client (alpha & unstable)
at dev 1.4 kB view raw
1<?php 2 3namespace SocialDept\AtpClient\Client\Requests\Atproto; 4 5use SocialDept\AtpClient\Attributes\PublicEndpoint; 6use SocialDept\AtpClient\Attributes\ScopedEndpoint; 7use SocialDept\AtpClient\Client\Requests\Request; 8use SocialDept\AtpClient\Data\Responses\Atproto\Identity\ResolveHandleResponse; 9use SocialDept\AtpClient\Data\Responses\EmptyResponse; 10use SocialDept\AtpClient\Enums\Nsid\AtprotoIdentity; 11use SocialDept\AtpClient\Enums\Scope; 12 13class IdentityRequestClient extends Request 14{ 15 /** 16 * Resolve handle to DID 17 * 18 * @see https://docs.bsky.app/docs/api/com-atproto-identity-resolve-handle 19 */ 20 #[PublicEndpoint] 21 public function resolveHandle(string $handle): ResolveHandleResponse 22 { 23 $response = $this->atp->client->get( 24 endpoint: AtprotoIdentity::ResolveHandle, 25 params: compact('handle') 26 ); 27 28 return ResolveHandleResponse::fromArray($response->json()); 29 } 30 31 /** 32 * Update handle 33 * 34 * @requires atproto (identity:handle) 35 * 36 * @see https://docs.bsky.app/docs/api/com-atproto-identity-update-handle 37 */ 38 #[ScopedEndpoint(Scope::Atproto, granular: 'identity:handle')] 39 public function updateHandle(string $handle): EmptyResponse 40 { 41 $this->atp->client->post( 42 endpoint: AtprotoIdentity::UpdateHandle, 43 body: compact('handle') 44 ); 45 46 return new EmptyResponse; 47 } 48}