module WorkSnaps::API::Utils

Constants

DEFAULT_CURSOR

Private Instance Methods

object_flatten(klass, attrs = {}) click to toggle source
# File lib/worksnaps/api/utils.rb, line 32
def object_flatten(klass, attrs = {})
  attrs ||= {}
  object = attrs[klass.name.demodulize.underscore] || {}
  object.symbolize_keys!
end
object_from_response(klass, request_method, path, options={}) click to toggle source

@param klass [Class] @param request_method [Symbol] @param path [String] @param options [Hash] @return [Object]

# File lib/worksnaps/api/utils.rb, line 15
def object_from_response(klass, request_method, path, options={})
  response = send(request_method.to_sym, path, options)[:body]
  klass.fetch_or_new(object_flatten(klass, response))
end
objects_array_from_response(klass, response) click to toggle source
# File lib/worksnaps/api/utils.rb, line 27
def objects_array_from_response(klass, response)
  objects_hash = response[klass.name.demodulize.tableize]
  objects_hash ? objects_hash.values : []
end
objects_from_response(klass, request_method, path, options={}) click to toggle source
# File lib/worksnaps/api/utils.rb, line 20
def objects_from_response(klass, request_method, path, options={})
  response = send(request_method.to_sym, path, options)[:body]
  objects_array_from_response(klass, response).map {|object_hash|
    klass.fetch_or_new(object_flatten(klass, object_hash))
  }
end