class ChargeBee::Export

Attributes

created_at[RW]
download[RW]
id[RW]
mime_type[RW]
operation_type[RW]
status[RW]

Public Class Methods

addons(params={}, env=nil, headers={}) click to toggle source
# File lib/chargebee/models/export.rb, line 54
def self.addons(params={}, env=nil, headers={})
  Request.send('post', uri_path("exports","addons"), params, env, headers)
end
attached_items(params={}, env=nil, headers={}) click to toggle source
# File lib/chargebee/models/export.rb, line 98
def self.attached_items(params={}, env=nil, headers={})
  Request.send('post', uri_path("exports","attached_items"), params, env, headers)
end
coupons(params={}, env=nil, headers={}) click to toggle source
# File lib/chargebee/models/export.rb, line 58
def self.coupons(params={}, env=nil, headers={})
  Request.send('post', uri_path("exports","coupons"), params, env, headers)
end
credit_notes(params={}, env=nil, headers={}) click to toggle source
# File lib/chargebee/models/export.rb, line 74
def self.credit_notes(params={}, env=nil, headers={})
  Request.send('post', uri_path("exports","credit_notes"), params, env, headers)
end
customers(params={}, env=nil, headers={}) click to toggle source
# File lib/chargebee/models/export.rb, line 62
def self.customers(params={}, env=nil, headers={})
  Request.send('post', uri_path("exports","customers"), params, env, headers)
end
deferred_revenue(params, env=nil, headers={}) click to toggle source
# File lib/chargebee/models/export.rb, line 46
def self.deferred_revenue(params, env=nil, headers={})
  Request.send('post', uri_path("exports","deferred_revenue"), params, env, headers)
end
differential_prices(params={}, env=nil, headers={}) click to toggle source
# File lib/chargebee/models/export.rb, line 102
def self.differential_prices(params={}, env=nil, headers={})
  Request.send('post', uri_path("exports","differential_prices"), params, env, headers)
end
invoices(params={}, env=nil, headers={}) click to toggle source
# File lib/chargebee/models/export.rb, line 70
def self.invoices(params={}, env=nil, headers={})
  Request.send('post', uri_path("exports","invoices"), params, env, headers)
end
item_families(params={}, env=nil, headers={}) click to toggle source
# File lib/chargebee/models/export.rb, line 86
def self.item_families(params={}, env=nil, headers={})
  Request.send('post', uri_path("exports","item_families"), params, env, headers)
end
item_prices(params={}, env=nil, headers={}) click to toggle source
# File lib/chargebee/models/export.rb, line 94
def self.item_prices(params={}, env=nil, headers={})
  Request.send('post', uri_path("exports","item_prices"), params, env, headers)
end
items(params={}, env=nil, headers={}) click to toggle source
# File lib/chargebee/models/export.rb, line 90
def self.items(params={}, env=nil, headers={})
  Request.send('post', uri_path("exports","items"), params, env, headers)
end
orders(params={}, env=nil, headers={}) click to toggle source
# File lib/chargebee/models/export.rb, line 82
def self.orders(params={}, env=nil, headers={})
  Request.send('post', uri_path("exports","orders"), params, env, headers)
end
plans(params={}, env=nil, headers={}) click to toggle source
# File lib/chargebee/models/export.rb, line 50
def self.plans(params={}, env=nil, headers={})
  Request.send('post', uri_path("exports","plans"), params, env, headers)
end
retrieve(id, env=nil, headers={}) click to toggle source

OPERATIONS

# File lib/chargebee/models/export.rb, line 38
def self.retrieve(id, env=nil, headers={})
  Request.send('get', uri_path("exports",id.to_s), {}, env, headers)
end
revenue_recognition(params, env=nil, headers={}) click to toggle source
# File lib/chargebee/models/export.rb, line 42
def self.revenue_recognition(params, env=nil, headers={})
  Request.send('post', uri_path("exports","revenue_recognition"), params, env, headers)
end
subscriptions(params={}, env=nil, headers={}) click to toggle source
# File lib/chargebee/models/export.rb, line 66
def self.subscriptions(params={}, env=nil, headers={})
  Request.send('post', uri_path("exports","subscriptions"), params, env, headers)
end
transactions(params={}, env=nil, headers={}) click to toggle source
# File lib/chargebee/models/export.rb, line 78
def self.transactions(params={}, env=nil, headers={})
  Request.send('post', uri_path("exports","transactions"), params, env, headers)
end

Public Instance Methods

wait_for_export_completion(env = nil, headers={}) click to toggle source
# File lib/chargebee/models/export.rb, line 9
def wait_for_export_completion(env = nil, headers={})
  env = env || ChargeBee.default_env
  sleeptime = env.export_sleeptime

  export_final = (1..50).inject(self) do |export|
    break export if export.status != "in_process"
    sleep(sleeptime)
    self.class.retrieve(self.id, env, headers).export
  end

  # sync last fetched one with the current instance
  new_values = export_final.instance_variable_get("@values")
  self.instance_variable_set("@values", new_values)
  self.load(new_values)

  case export_final.status
  when "in_process"
    raise Error.new('Export is taking too long')
  when "failed"
    json_obj = Util.symbolize_keys(JSON.parse(self.error_json))
    raise OperationFailedError.new(json_obj[:http_code], json_obj)
  when "not_enabled", "_unknown"
    raise Error.new("Export status is in wrong state #{self.status}")
  end
end