Laravel AT Protocol Client (alpha & unstable)
1<?php
2
3namespace SocialDept\AtpClient\Client\Requests\Ozone;
4
5use SocialDept\AtpClient\Attributes\ScopedEndpoint;
6use SocialDept\AtpClient\Client\Requests\Request;
7use SocialDept\AtpClient\Data\Responses\Ozone\Server\GetConfigResponse;
8use SocialDept\AtpClient\Enums\Nsid\OzoneServer;
9use SocialDept\AtpClient\Enums\Scope;
10use SocialDept\AtpClient\Http\Response;
11
12class ServerRequestClient extends Request
13{
14 /**
15 * Get blob (returns binary data)
16 *
17 * @requires transition:generic (rpc:tools.ozone.server.getBlob)
18 *
19 * @see https://docs.bsky.app/docs/api/tools-ozone-server-get-config
20 */
21 #[ScopedEndpoint(Scope::TransitionGeneric, granular: 'rpc:tools.ozone.server.getBlob')]
22 public function getBlob(string $did, string $cid): Response
23 {
24 return $this->atp->client->get(
25 endpoint: OzoneServer::GetBlob,
26 params: compact('did', 'cid')
27 );
28 }
29
30 /**
31 * Get config
32 *
33 * @requires transition:generic (rpc:tools.ozone.server.getConfig)
34 *
35 * @see https://docs.bsky.app/docs/api/tools-ozone-server-get-config
36 */
37 #[ScopedEndpoint(Scope::TransitionGeneric, granular: 'rpc:tools.ozone.server.getConfig')]
38 public function getConfig(): GetConfigResponse
39 {
40 $response = $this->atp->client->get(
41 endpoint: OzoneServer::GetConfig
42 );
43
44 return GetConfigResponse::fromArray($response->json());
45 }
46}