<?php

$base = 'https://www.googleapis.com/';
$path = 'books/v1/volumes';

echo "ISBN コードを入力してください: ";

$handle = fopen("php://stdin", "r");
$line = fgets($handle);
$isbn = trim($line);

if (empty($isbn)) {
  echo "不正な入力\n";
  exit(2);
}

$response = file_get_contents(
  $url = $base . $path . "?" . http_build_query(['q' => "isbn:{$isbn}"]),
);

$json = json_decode($response, true);

if (($json['totalItems'] ?? 0) === 0) {
  echo "書籍情報が見つかりませんでした\n";
  exit(1);
}

$book = Book::fromArray($json);


var_dump($book);

class Book {
  public function __construct(
    public string $title,
    public array $authors,
    public string $publisher,
    public string $publishedDate,
  ){}

  public static function fromArray(array $data): self
  {
    // google books api のレスポンス前提
    return new self(
      title: $data["items"][0]["volumeInfo"]["title"] ?? '',
      authors: $data["items"][0]["volumeInfo"]["authors"] ?? [],
      publisher: $data["items"][0]["volumeInfo"]["publisher"] ?? '',
      publishedDate: $data["items"][0]["volumeInfo"]["publishedDate"] ?? '',
    );
  }
}