private function __runRequest($ch)
    {
        $data = curl_exec($ch);
        $ch_info = curl_getinfo($ch);
        if ($data === false) {
            throw new \Exception(curl_error($ch));
        } elseif ($ch_info['http_code'] != 200) {
            throw new \Exception('Unexpected HTTP status code ' . $ch_info['http_code'] . '.' . curl_error($ch));
        }
        curl_close($ch);
        return json_decode($data);
    }