module WCC::API::ActiveRecordShim::ClassMethods

Public Instance Methods

find(id) click to toggle source
# File lib/wcc/api/active_record_shim.rb, line 24
def find(id)
  client.public_send(endpoint).find(id)
end
find_all(**filters) click to toggle source
# File lib/wcc/api/active_record_shim.rb, line 28
def find_all(**filters)
  client.public_send(endpoint).list(filters)
end
find_by(**filters) click to toggle source
# File lib/wcc/api/active_record_shim.rb, line 32
def find_by(**filters)
  raise ArgumentError, "You must provide at least one filter" if filters.empty?

  find_all(filters).first
end
find_in_batches(options, &block) click to toggle source
# File lib/wcc/api/active_record_shim.rb, line 50
def find_in_batches(options, &block)
  options = options ? options.dup : {}
  batch_size = options.delete(:batch_size) || 1000
  skip_param = [:skip, :offset]

  filter = {
    limit: batch_size,
    offset: options.delete(:start) || 0
  }

  find_all(filter).each_slice(batch_size, &block)
end
model_name() click to toggle source
# File lib/wcc/api/active_record_shim.rb, line 38
def model_name
  name
end
table_name() click to toggle source
# File lib/wcc/api/active_record_shim.rb, line 42
def table_name
  endpoint
end
unscoped() { || ... } click to toggle source
# File lib/wcc/api/active_record_shim.rb, line 46
def unscoped
  yield
end
where(**conditions) click to toggle source
# File lib/wcc/api/active_record_shim.rb, line 63
def where(**conditions)
  # TODO: return a Query object that implements more of the ActiveRecord query interface
  # https://guides.rubyonrails.org/active_record_querying.html#conditions
  find_all(conditions)
end