class InvisibleCollector::Resources::DebtResource
Public Class Methods
new(options = {})
click to toggle source
Calls superclass method
InvisibleCollector::DefaultHandlers::new
# File lib/invisible_collector/resources/debt_resource.rb, line 8 def initialize(options = {}) super(options) handle(400) { |response| raise InvisibleCollector::InvalidRequest.from_json(response.body) } handle(404) { |response| raise InvisibleCollector::NotFound.from_json(response.body) } handle(409) { |response| raise InvisibleCollector::InvalidRequest.from_json(response.body) } handle(422) { |response| raise InvisibleCollector::InvalidRequest.from_json(response.body) } end
Public Instance Methods
cancel(debt = {})
click to toggle source
# File lib/invisible_collector/resources/debt_resource.rb, line 16 def cancel(debt = {}) id = get_id(debt) response = execute do |connection| connection.put("debts/#{id}/cancel") end build_response(response) end
find(params = {})
click to toggle source
# File lib/invisible_collector/resources/debt_resource.rb, line 24 def find(params = {}) response = execute_get('debts/find', params) debts = JSON.parse(response.body).map { |json| Model::Debt.new(json.deep_transform_keys(&:underscore)) } Response.new(response, debts) end
get(id, attrs = {})
click to toggle source
# File lib/invisible_collector/resources/debt_resource.rb, line 30 def get(id, attrs = {}) response = @connection.get("debts/#{id}", attrs) if response.status == 404 nil else build_response(response) end end
save(debt)
click to toggle source
# File lib/invisible_collector/resources/debt_resource.rb, line 39 def save(debt) response = execute_post('debts', debt) build_response(response) end
save_credit(debt, credit)
click to toggle source
# File lib/invisible_collector/resources/debt_resource.rb, line 51 def save_credit(debt, credit) id = debt.is_a?(Model::Debt) ? debt.id : debt response = execute_post("debts/#{id}/credits", credit) credit = Model::Credit.new(JSON.parse(response.body).deep_transform_keys(&:underscore)) Response.new(response, credit) end
save_debit(debt, debit)
click to toggle source
# File lib/invisible_collector/resources/debt_resource.rb, line 44 def save_debit(debt, debit) id = debt.is_a?(Model::Debt) ? debt.id : debt response = execute_post("debts/#{id}/debits", debit) debit = Model::Debit.new(JSON.parse(response.body).deep_transform_keys(&:underscore)) Response.new(response, debit) end
suspend(debt = {})
click to toggle source
# File lib/invisible_collector/resources/debt_resource.rb, line 58 def suspend(debt = {}) id = get_id(debt) response = execute do |connection| connection.put("debts/#{id}/suspend") end build_response(response) end
unsuspend(debt = {})
click to toggle source
# File lib/invisible_collector/resources/debt_resource.rb, line 66 def unsuspend(debt = {}) id = get_id(debt) response = execute do |connection| connection.put("debts/#{id}/unsuspend") end build_response(response) end
Private Instance Methods
build_response(response)
click to toggle source
# File lib/invisible_collector/resources/debt_resource.rb, line 76 def build_response(response) debt = Model::Debt.new(JSON.parse(response.body).deep_transform_keys(&:underscore)) Response.new(response, debt) end
get_id(debt)
click to toggle source
# File lib/invisible_collector/resources/debt_resource.rb, line 81 def get_id(debt) if debt.is_a?(InvisibleCollector::Model::Debt) debt.id elsif debt.is_a?(Hash) debt[:id] else debt end end