module ArchivesSpace::Helpers
Public Instance Methods
accessions(options = {})
click to toggle source
# File lib/archivesspace/client/helpers.rb, line 13 def accessions(options = {}) all('accessions', options) end
all(path, options = {})
click to toggle source
# File lib/archivesspace/client/helpers.rb, line 17 def all(path, options = {}) Enumerator.new do |yielder| page = 1 unlimited_listing = false loop do options[:query] ||= {} options[:query][:page] = page result = get(path, options) results = [] if result.parsed.respond_to?(:key) && result.parsed.key?('results') results = result.parsed['results'] else results = result.parsed unlimited_listing = true end if results.any? results.each do |i| yielder << i end raise StopIteration if unlimited_listing page += 1 else raise StopIteration end end end.lazy end
backend_version()
click to toggle source
# File lib/archivesspace/client/helpers.rb, line 48 def backend_version get 'version' end
digital_objects(options = {})
click to toggle source
def batch_import(payload, params = {})
# TODO: create "batch_import", payload, params
end
# File lib/archivesspace/client/helpers.rb, line 56 def digital_objects(options = {}) all('digital_objects', options) end
group_user_assignment(users_with_roles)
click to toggle source
# File lib/archivesspace/client/helpers.rb, line 64 def group_user_assignment(users_with_roles) updated = [] groups.each do |group| group = get("groups/#{uri_to_id(group['uri'])}").parsed update = false users_with_roles.each do |user, roles| # should the user still belong to this group? if group['member_usernames'].include?(user) unless roles.include? group['group_code'] group['member_usernames'].delete user update = true end # should the user be added to this group? elsif roles.include? group['group_code'] group['member_usernames'] << user update = true end end next unless update response = post("/groups/#{uri_to_id(group['uri'])}", group.to_json) updated << response end updated end
groups(options = {})
click to toggle source
# File lib/archivesspace/client/helpers.rb, line 60 def groups(options = {}) all('groups', options) end
login()
click to toggle source
# File lib/archivesspace/client/helpers.rb, line 92 def login username = config.username password = config.password result = request('POST', "/users/#{username}/login", { query: { password: password } }) unless result.parsed['session'] raise ConnectionError, "Failed to connect to ArchivesSpace backend as #{username} #{password}" end @token = result.parsed['session'] self end
password_reset(username, password)
click to toggle source
# File lib/archivesspace/client/helpers.rb, line 104 def password_reset(username, password) user = all('users').find { |u| u['username'] == username } raise RequestError, user.status unless user post(user['uri'], user.to_json, { password: password }) end
repositories(options = {})
click to toggle source
# File lib/archivesspace/client/helpers.rb, line 111 def repositories(options = {}) all('repositories', options) end
repositories_with_agent()
click to toggle source
# File lib/archivesspace/client/helpers.rb, line 115 def repositories_with_agent; end
resources(options = {})
click to toggle source
# File lib/archivesspace/client/helpers.rb, line 117 def resources(options = {}) all('resources', options) end
uri_to_id(uri)
click to toggle source
def search(params)
# TODO: get "search", params
end
# File lib/archivesspace/client/helpers.rb, line 125 def uri_to_id(uri) uri.split('/').last end
users(options = {})
click to toggle source
# File lib/archivesspace/client/helpers.rb, line 129 def users(options = {}) all('users', options) end