Laravel AT Protocol Client (alpha & unstable)
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}