1 | <?php |
||
8 | class AirtableApiClient implements ApiClient |
||
9 | { |
||
10 | private $client; |
||
11 | |||
12 | private $base; |
||
13 | private $table; |
||
14 | |||
15 | private $pageSize = 100; |
||
16 | private $maxRecords = 100; |
||
17 | |||
18 | public function __construct($base, $table, $access_token) |
||
24 | |||
25 | private function buildClient($access_token) |
||
35 | |||
36 | public function get(string $id = null) |
||
42 | |||
43 | public function getAllPages() |
||
58 | |||
59 | public function post($contents = null) |
||
60 | { |
||
61 | $url = $this->getEndpointUrl(); |
||
62 | |||
63 | $params = ['json' => ['fields' => (object) $contents]]; |
||
64 | |||
65 | return $this->jsonToObject($this->client->post($url, $params)); |
||
66 | } |
||
67 | |||
68 | public function put(string $id, $contents = null) |
||
69 | { |
||
70 | $url = $this->getEndpointUrl($id); |
||
71 | |||
72 | $params = ['json' => ['fields' => (object) $contents]]; |
||
73 | |||
74 | return $this->jsonToObject($this->client->put($url, $params)); |
||
75 | } |
||
76 | |||
77 | public function patch(string $id, $contents = null) |
||
78 | { |
||
79 | $url = $this->getEndpointUrl($id); |
||
80 | |||
81 | $params = ['json' => ['fields' => (object) $contents]]; |
||
82 | |||
83 | return $this->jsonToObject($this->client->patch($url, $params)); |
||
84 | } |
||
85 | |||
86 | public function delete(string $id) |
||
92 | |||
93 | public function responseToJson($response) |
||
99 | |||
100 | public function jsonToObject($response) |
||
110 | |||
111 | public function jsonToArray($response) |
||
121 | |||
122 | protected function getEndpointUrl(?string $id = null): string |
||
141 | } |
||
142 |