class QiwiObserver::WebhookRegistration
Public Class Methods
new(url)
click to toggle source
# File lib/qiwi_observer/webhook/webhook_registration.rb, line 5 def initialize(url) @token = QiwiObserver.config.token @url = url raise ArgumentError, "Token must be configure in QiwiObserver" if @token.nil? raise ArgumentError, "URL must be set" unless url end
Public Instance Methods
call()
click to toggle source
# File lib/qiwi_observer/webhook/webhook_registration.rb, line 13 def call query = URI.encode_www_form({hookType: 1, param: @url, txnType: "2"}) uri = URI("https://edge.qiwi.com/payment-notifier/v1/hooks?#{query}") request = prepare_a_request(uri) http = connect_to_api(uri) response = http.request(request) return WebhookResponse.new(success: true, body: response.body) if response.is_a?(Net::HTTPOK) return WebhookResponse.new(success: false, body: [response.code, response.message]) end
Private Instance Methods
connect_to_api(uri)
click to toggle source
# File lib/qiwi_observer/webhook/webhook_registration.rb, line 37 def connect_to_api(uri) http = Net::HTTP.new(uri.host, uri.port) http.use_ssl = true http.verify_mode = OpenSSL::SSL::VERIFY_NONE http end
prepare_a_request(uri)
click to toggle source
# File lib/qiwi_observer/webhook/webhook_registration.rb, line 25 def prepare_a_request(uri) request = Net::HTTP::Put.new(uri) request.initialize_http_header( { "Accept" => "application/json", "Content-Type" => "application/json", "Authorization" => "Bearer #{@token}" } ) request end