Class: Libis::Services::CollectiveAccess::Service
- Inherits:
-
Object
- Object
- Libis::Services::CollectiveAccess::Service
- Defined in:
- lib/libis/services/collective_access/service.rb
Instance Attribute Summary collapse
-
#cata ⇒ Object
readonly
Returns the value of attribute cata.
-
#info ⇒ Object
readonly
Returns the value of attribute info.
-
#search ⇒ Object
readonly
Returns the value of attribute search.
Instance Method Summary collapse
- #add_attribute(object, attribute, value) ⇒ Object
- #add_object(label) ⇒ Object
- #authenticate(name = nil, password = nil) ⇒ Object
- #deauthenticate ⇒ Object
-
#delete_attribute(_, _) ⇒ Object
object, attribute).
- #delete_attributes(object) ⇒ Object
- #delete_object(object) ⇒ Object
- #get_attribute(object, attribute) ⇒ Object
- #get_object(label) ⇒ Object
-
#initialize(host = nil) ⇒ Service
constructor
A new instance of Service.
- #search_object(attributes = {}) ⇒ Object
Constructor Details
#initialize(host = nil) ⇒ Service
Returns a new instance of Service.
15 16 17 18 19 |
# 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 |
Instance Attribute Details
#cata ⇒ Object (readonly)
Returns the value of attribute cata.
13 14 15 |
# File 'lib/libis/services/collective_access/service.rb', line 13 def cata @cata end |
#info ⇒ Object (readonly)
Returns the value of attribute info.
13 14 15 |
# File 'lib/libis/services/collective_access/service.rb', line 13 def info @info end |
#search ⇒ Object (readonly)
Returns the value of attribute search.
13 14 15 |
# File 'lib/libis/services/collective_access/service.rb', line 13 def search @search end |
Instance Method Details
#add_attribute(object, attribute, value) ⇒ Object
58 59 60 |
# 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) ⇒ Object
33 34 35 |
# 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) ⇒ Object
21 22 23 24 25 |
# 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 ⇒ Object
27 28 29 30 31 |
# File 'lib/libis/services/collective_access/service.rb', line 27 def deauthenticate @search.deauthenticate @info.deauthenticate @cata.deauthenticate end |
#delete_attribute(_, _) ⇒ Object
object, attribute)
68 69 70 |
# File 'lib/libis/services/collective_access/service.rb', line 68 def delete_attribute(_, _) #object, attribute) end |
#delete_attributes(object) ⇒ Object
72 73 74 |
# File 'lib/libis/services/collective_access/service.rb', line 72 def delete_attributes(object) @cata.remove_attributes object end |
#delete_object(object) ⇒ Object
54 55 56 |
# File 'lib/libis/services/collective_access/service.rb', line 54 def delete_object(object) @cata.remove object end |
#get_attribute(object, attribute) ⇒ Object
62 63 64 65 66 |
# 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) ⇒ Object
50 51 52 |
# File 'lib/libis/services/collective_access/service.rb', line 50 def get_object(label) search_object query: "\"#{label}\"" end |
#search_object(attributes = {}) ⇒ Object
37 38 39 40 41 42 43 44 45 46 47 48 |
# 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 |