class PIM::Services::DataModelLoaders::ProxyServiceLoader

Public Class Methods

new(data_model_service = nil) click to toggle source
# File services.rb, line 1640
def initialize data_model_service = nil
  @data_model_service = data_model_service || PIM::Services.__proxy_service(:dataModelService)
end

Public Instance Methods

enabled?() click to toggle source
# File services.rb, line 1644
def enabled?
  return !@data_model_service.nil?
end
get(data_module, request) click to toggle source

Use proxy_service directly

# File services.rb, line 1655
def get data_module, request

  method_name = request.proxy_service_method_name.to_sym
  result = @data_model_service.send(method_name, get_service_name(data_module), *request.proxy_args)

  # If result is an Array, but the return_type is Hash, map the objects by their "name"
  if PIM.is_array?(result) and request.return_type == Hash

    proxy_result = {}
    result.compact.each do |obj|
      [:name, :code].each do |field|
        key = PIM.get_value(obj, field)
        proxy_result[key] = obj unless key.nil?
      end
    end

    result = proxy_result

    # Additionally, for any request key which is missing, add a 'nil' entry
    unless request.keys.nil?
      missing_keys = request.keys - result.keys
      missing_keys.each { |k| result[k] = nil }
    end

  end

  return result
end
get_redirect(data_module, request, *loaders) click to toggle source

Use proxy_service directly

# File services.rb, line 1686
def get_redirect data_module, request, *loaders
  return get(data_module, request)
end
use_next_loader?(data_module) click to toggle source
# File services.rb, line 1648
def use_next_loader? data_module
  # If proxy service exists, don't use next loaders!
  return !enabled?
end