Ricardo Garcia

Update

...@@ -23,14 +23,15 @@ module Var ...@@ -23,14 +23,15 @@ module Var
23 object.charge_with(service, options) 23 object.charge_with(service, options)
24 end 24 end
25 25
26 - def conekta_webhook(params) 26 + def conekta_webhook(event)
27 - payment = params[:data][:object] 27 + raise "Hash expected, received #{event.class}" unless event.class == Hash
28 + raise 'Malformed hash received' unless event[:data] &&
29 + event[:data][:object]
30 + payment = event[:data][:object]
28 object = Var.find_charge payment[:id] 31 object = Var.find_charge payment[:id]
32 + # object.handle_conekta_event
29 update_object_var_data(object, payment) 33 update_object_var_data(object, payment)
30 object 34 object
31 - # rescue Exception => exception
32 - # puts exception
33 - # false
34 end 35 end
35 36
36 def update_object_var_data(object, data) 37 def update_object_var_data(object, data)
......
1 require 'pry' 1 require 'pry'
2 require 'active_record' 2 require 'active_record'
3 require 'active_support' 3 require 'active_support'
4 -require 'Var' 4 +require 'var'
5 5
6 require 'mocks/var_database_mock' 6 require 'mocks/var_database_mock'
7 require 'mocks/var_models_mock' 7 require 'mocks/var_models_mock'
......
...@@ -51,6 +51,20 @@ describe Var do ...@@ -51,6 +51,20 @@ describe Var do
51 instance_double('Product') 51 instance_double('Product')
52 end 52 end
53 53
54 + it 'expects a Hash as an input' do
55 + [[], '', nil].each do |input|
56 + expect do
57 + Var.conekta_webhook(input)
58 + end.to raise_error "Hash expected, received #{input.class}"
59 + end
60 + end
61 +
62 + it 'expects a {data: {object: ... }} as an input' do
63 + expect do
64 + Var.conekta_webhook({})
65 + end.to raise_error "Malformed hash received"
66 + end
67 +
54 it 'handles Cargo creado con tarjeta' do 68 it 'handles Cargo creado con tarjeta' do
55 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}]} 69 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}]}
56 70
......