class Libis::Services::CollectiveAccess::Service

Attributes

cata[R]
info[R]

Public Class Methods

new(host = nil) click to toggle source
# File lib/libis/services/collective_access/service.rb, line 15
def initialize(host = nil)
  @search = ::Libis::Services::CollectiveAccess::Search.new host
  @info = ::Libis::Services::CollectiveAccess::ItemInfo.new host
  @cata = ::Libis::Services::CollectiveAccess::Cataloguing.new host
end

Public Instance Methods

add_attribute(object, attribute, value) click to toggle source
# File lib/libis/services/collective_access/service.rb, line 58
def add_attribute(object, attribute, value)
  @cata.add_attribute object, attribute.to_s, {attribute.to_sym => value}
end
add_object(label) click to toggle source
# File lib/libis/services/collective_access/service.rb, line 33
def add_object(label)
  @cata.add_item idno: label, type_id: 21
end
authenticate(name = nil, password = nil) click to toggle source
# File lib/libis/services/collective_access/service.rb, line 21
def authenticate(name = nil, password = nil)
  result = @search.authenticate name, password
  result &&= @info.authenticate name, password
  result && @cata.authenticate(name, password)
end
deauthenticate() click to toggle source
# File lib/libis/services/collective_access/service.rb, line 27
def deauthenticate
  @search.deauthenticate
  @info.deauthenticate
  @cata.deauthenticate
end
delete_attribute(_, _) click to toggle source
# File lib/libis/services/collective_access/service.rb, line 68
def delete_attribute(_, _) #object, attribute)

end
delete_attributes(object) click to toggle source
# File lib/libis/services/collective_access/service.rb, line 72
def delete_attributes(object)
  @cata.remove_attributes object
end
delete_object(object) click to toggle source
# File lib/libis/services/collective_access/service.rb, line 54
def delete_object(object)
  @cata.remove object
end
get_attribute(object, attribute) click to toggle source
# File lib/libis/services/collective_access/service.rb, line 62
def get_attribute(object, attribute)
  result = @info.get_attribute object, attribute
  result = [result] unless result.is_a? Array
  result
end
get_object(label) click to toggle source
# File lib/libis/services/collective_access/service.rb, line 50
def get_object(label)
  search_object query: "\"#{label}\""
end
search_object(attributes = {}) click to toggle source
# File lib/libis/services/collective_access/service.rb, line 37
def search_object(attributes = {})
  query = attributes.delete :query || ''
  query = attributes.inject(query) { |q, (k, v)|
    q << ' AND ' unless q.empty?
    q << k << ':' if k
    v = "\"#{v}\"" if v.is_a?(String) and !v.include? '"'
    q << v
  }
  result = @search.query query
  return nil unless result && result.is_a?(Hash) && !result.empty?
  result.first[0]
end