Class: BerkeleyLibrary::Location::WorldCat::LibrariesRequest

Inherits:
Object
  • Object
show all
Includes:
Util
Defined in:
lib/berkeley_library/location/world_cat/libraries_request.rb

Overview

Constant Summary collapse

JPATH_INST_ID_VALS =
'$.briefRecords[*].institutionHolding.briefHoldings[*].oclcSymbol'.freeze

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(oclc_number, symbols: Symbols::ALL) ⇒ LibrariesRequest

Returns a new instance of LibrariesRequest.



20
21
22
23
24
# File 'lib/berkeley_library/location/world_cat/libraries_request.rb', line 20

def initialize(oclc_number, symbols: Symbols::ALL)
  @oclc_token = OCLCAuth.instance
  @oclc_number = OCLCNumber.ensure_oclc_number!(oclc_number)
  @symbols = Symbols.ensure_valid!(symbols)
end

Instance Attribute Details

#oclc_numberObject (readonly)

Returns the value of attribute oclc_number.



18
19
20
# File 'lib/berkeley_library/location/world_cat/libraries_request.rb', line 18

def oclc_number
  @oclc_number
end

#symbolsObject (readonly)

Returns the value of attribute symbols.



18
19
20
# File 'lib/berkeley_library/location/world_cat/libraries_request.rb', line 18

def symbols
  @symbols
end

Instance Method Details

#executeObject



43
44
45
46
# File 'lib/berkeley_library/location/world_cat/libraries_request.rb', line 43

def execute
  response_body = URIs.get(uri, params:, headers:, log: false)
  inst_symbols_from(response_body)
end

#headersObject



37
38
39
40
41
# File 'lib/berkeley_library/location/world_cat/libraries_request.rb', line 37

def headers
  @headers ||= {
    'Authorization' => "Bearer #{oclc_token.access_token}"
  }
end

#paramsObject



30
31
32
33
34
35
# File 'lib/berkeley_library/location/world_cat/libraries_request.rb', line 30

def params
  @params ||= {
    'oclcNumber' => oclc_number,
    'heldBySymbol' => symbols.join(',')
  }
end

#uriObject



26
27
28
# File 'lib/berkeley_library/location/world_cat/libraries_request.rb', line 26

def uri
  @uri ||= URIs.append(libraries_base_uri)
end