/** * @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']); } } }
/** * @param HttpResponse $response * @return array */ private static function parseReadDirResponse(HttpResponse $response) { $body = $response->getContent(); $lines = explode("\n", $body); $files = []; foreach ($lines as $line) { list($name, $type, $size, $date) = explode("\t", $line); $files[] = ['name' => $name, 'type' => $type, 'size' => (int) $size, 'date' => (int) $date]; } return $files; }
/** * @param HttpResponse $response * @return Response * @throws ClientException | ServerException */ protected function afterExecute(HttpResponse $response) { $statusCode = $response->getStatus(); if ($response->isSuccess()) { return new Response($statusCode, $response->getData()); } else { $data = $response->getData(); static::throwException($data, $statusCode); } }