# frozen_string_literal: true

module Cinii
  class SearchResult
    class Book < Base
      def items
        items = graph['items']

        @items ||= items ? items.map { |i| item_class.new(i) } : []
      end

      private

      def item_class
        case title
        when /CiNii Books OpenSearch/
          Cinii::Item::Book
        when /CiNii Books Author/
          Cinii::Item::Author
        when /CiNii Books Library/
          Cinii::Item::Library
        when /CiNii Books Holder/
          Cinii::Item::Library
        else
          raise UnKnownResponseTypeError
        end
      end
    end
  end
end