class JsonApiClient::RequestParams

Attributes

fields[R]
includes[R]
klass[R]

Public Class Methods

new(klass, includes: [], fields: {}) click to toggle source
# File lib/json_api_client/request_params.rb, line 5
def initialize(klass, includes: [], fields: {})
  @klass = klass
  @includes = includes
  @fields = fields
end

Public Instance Methods

add_includes(includes) click to toggle source
# File lib/json_api_client/request_params.rb, line 11
def add_includes(includes)
  Utils.parse_includes(klass, *includes).each do |name|
    name = name.to_sym
    self.includes.push(name) unless self.includes.include?(name)
  end
end
clear() click to toggle source
# File lib/json_api_client/request_params.rb, line 34
def clear
  reset_includes!
  @fields = {}
end
field_types() click to toggle source
# File lib/json_api_client/request_params.rb, line 30
def field_types
  self.fields.keys
end
remove_fields(type) click to toggle source
# File lib/json_api_client/request_params.rb, line 26
def remove_fields(type)
  self.fields.delete(type.to_sym)
end
reset_includes!() click to toggle source
# File lib/json_api_client/request_params.rb, line 18
def reset_includes!
  @includes = []
end
set_fields(type, field_names) click to toggle source
# File lib/json_api_client/request_params.rb, line 22
def set_fields(type, field_names)
  self.fields[type.to_sym] = field_names.map(&:to_sym)
end
to_params() click to toggle source
# File lib/json_api_client/request_params.rb, line 39
def to_params
  return nil if field_types.empty? && includes.empty?
  parsed_fields.merge(parsed_includes)
end

Private Instance Methods

parsed_fields() click to toggle source
# File lib/json_api_client/request_params.rb, line 51
def parsed_fields
  return {} if field_types.empty?
  {fields: fields.map { |type, names| [type, names.join(",")] }.to_h}
end
parsed_includes() click to toggle source
# File lib/json_api_client/request_params.rb, line 46
def parsed_includes
  return {} if includes.empty?
  {include: includes.join(",")}
end