class CONTENTdmAPI::RequestBatch

Make a batch of requests to the CONTENTdm API and combine them

Attributes

base_url[R]
configs[R]
requester[R]
service[R]

Public Class Methods

new(base_url: '', service_configs: [], service: Service, requester: Request) click to toggle source

@param [String] base_url URL to the CONTENTdm API

"http://CdmServer.com:port/dmwebservices/index.php"

@param [Array] service_configs An array of hash configurations for

 individual services
"http://CdmServer.com:port/dmwebservices/index.php"

@param [Object] service A Service class to tell the Request class

which function, params and format to request of the CONTENTdm API

@param [Object] requester A class to form requests to the ContentDM API

@return [Void]

# File lib/contentdm_api/request_batch.rb, line 15
def initialize(base_url: '',
               service_configs: [],
               service: Service,
               requester: Request)

  @service   = service
  @configs   = service_configs
  @base_url  = base_url
  @requester = requester
end

Public Instance Methods

fetch() click to toggle source

Fetch data from the CONTENTdm API

@return [Array] an array of hashes containing Request response data

# File lib/contentdm_api/request_batch.rb, line 29
def fetch
  responses
end

Private Instance Methods

new_service(function, params) click to toggle source
# File lib/contentdm_api/request_batch.rb, line 39
def new_service(function, params)
  service.new(function: function, params: params)
end
request(service, base_url) click to toggle source
# File lib/contentdm_api/request_batch.rb, line 49
def request(service, base_url)
  requester.new(service: service, base_url: base_url).fetch
end
responses() click to toggle source
# File lib/contentdm_api/request_batch.rb, line 43
def responses
  service_objects.map do |service|
    { service: service.function, value: request(service, base_url) }
  end
end
service_objects() click to toggle source
# File lib/contentdm_api/request_batch.rb, line 35
def service_objects
  configs.map { |s| new_service(s[:function], s.fetch(:params, [])) }
end