url = $url; $this->token = $token; } /** * * * @param string $name * @param array $parameters * @return mixed */ public function findOne($name, $parameters = []) { // adding single to parameters $parameters['single'] = true; $response = $this->request($name, $this->endpoint, $parameters); return $response; } /** * * * @param string $name * @param array $parameters * @return mixed * */ public function find($name, $parameters = []) { return $this->request($name, $this->endpoint, $parameters); } /** * request $endpoint * * @param string $name * @param string $endpoint * @param array $parameters * @return mixed * */ protected function request($name, $endpoint, $parameters = []) { // init curl and setup token $curl = curl_init(); curl_setopt($curl, CURLOPT_HTTPHEADER, [ 'Accept: application/json', 'Content-Type: application/json', 'Authorization: Bearer '.$this->token ]); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); $response = []; if (count($parameters) > 0) { $query = http_build_query($parameters); } $url = $this->url.$endpoint.'/'.$name; // query parameters are set, add them to url if (isset($query)) { $url = $url.'?'.$query; } curl_setopt($curl, CURLOPT_URL, $url); $response = curl_exec($curl); $code = curl_getinfo($curl, CURLINFO_HTTP_CODE); $info = curl_getinfo($curl); curl_close($curl); $response = json_decode($response, true); return $response; } }