/** * @param HttpResponse $response * @param callable|null $success * @param callable|null $failed * @return mixed * @throws ResponseException */ protected static function handleResponse(HttpResponse $response, callable $success = null, callable $failed = null) { $httpCode = (int) $response->getHeader('http-code'); if ($httpCode === 200) { return call_user_func($success, $response); } else { if ($failed) { return call_user_func($failed, $response); } else { $data = $response->getData(); throw new ResponseException($data['msg'], $data['code']); } } }