Ricardo Garcia

Update

......@@ -23,14 +23,15 @@ module Var
object.charge_with(service, options)
end
def conekta_webhook(params)
payment = params[:data][:object]
def conekta_webhook(event)
raise "Hash expected, received #{event.class}" unless event.class == Hash
raise 'Malformed hash received' unless event[:data] &&
event[:data][:object]
payment = event[:data][:object]
object = Var.find_charge payment[:id]
# object.handle_conekta_event
update_object_var_data(object, payment)
object
# rescue Exception => exception
# puts exception
# false
end
def update_object_var_data(object, data)
......
require 'pry'
require 'active_record'
require 'active_support'
require 'Var'
require 'var'
require 'mocks/var_database_mock'
require 'mocks/var_models_mock'
......
......@@ -51,6 +51,20 @@ describe Var do
instance_double('Product')
end
it 'expects a Hash as an input' do
[[], '', nil].each do |input|
expect do
Var.conekta_webhook(input)
end.to raise_error "Hash expected, received #{input.class}"
end
end
it 'expects a {data: {object: ... }} as an input' do
expect do
Var.conekta_webhook({})
end.to raise_error "Malformed hash received"
end
it 'handles Cargo creado con tarjeta' do
params = {"data":{"object":{"id":"5511d4ce2412294cf6000081","livemode":false,"created_at":1427231950,"status":"pending_payment","currency":"MXN","description":"Stogies","reference_id":"9839-wolf_pack","failure_code":nil,"failure_message":nil,"monthly_installments":nil,"object":"charge","amount":20000,"paid_at":nil,"fee":963,"customer_id":"","refunds":[],"payment_method":{"name":"Jorge Lopez","exp_month":"12","exp_year":"19","auth_code":nil,"object":"card_payment","last4":"4242","brand":"visa"},"details":{"name":nil,"phone":nil,"email":nil,"line_items":[]}},"previous_attributes":{}},"livemode":false,"webhook_status":"pending","id":"5511d4ce2412294cf6000084","object":"event","type":"charge.created","created_at":1427231950,"webhook_logs":[{"id":"webhl_nPzGMBeQmMUu7aQ","url":"http://requestb.in/1em0jsx1","failed_attempts":0,"last_http_response_status":-1,"object":"webhook_log","last_attempted_at":0}]}
......