Sha256: 62c4025e650b99ea3a87f54bd7d1864c7fab6fe85e326cc0c11405bd994370ce

Contents?: true

Size: 771 Bytes

Versions: 3

Compression:

Stored size: 771 Bytes

Contents

# frozen_string_literal: true

class FolioClient
  # Lookup items in the Folio inventory
  class Inventory
    attr_accessor :client

    # @param client [FolioClient] the configured client
    def initialize(client)
      @client = client
    end

    # @param barcode [String] barcode to search by to fetch the HRID
    def fetch_hrid(barcode:)
      # find the instance UUID for this barcode
      instance = client.get("/search/instances", {query: "items.barcode==#{barcode}"})
      instance_uuid = instance.dig("instances", 0, "id")

      return nil unless instance_uuid

      # next lookup the instance given the instance_uuid so we can fetch the hrid
      result = client.get("/inventory/instances/#{instance_uuid}")
      result.dig("hrid")
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
folio_client-0.3.0 lib/folio_client/inventory.rb
folio_client-0.2.1 lib/folio_client/inventory.rb
folio_client-0.2.0 lib/folio_client/inventory.rb