module Khalti::RequestHelper
Handles API calls
Constants
- SECRET_KEY
Public Class Methods
get(path)
click to toggle source
# File lib/khalti/request_helper.rb, line 8 def get(path) validate_secret_key uri = URI.parse(path) req = Net::HTTP::Get.new(uri) req['authorization'] = "Key #{SECRET_KEY}" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |http| http.request(req) end extract_response(res) end
post(path, params)
click to toggle source
# File lib/khalti/request_helper.rb, line 19 def post(path, params) validate_secret_key uri = URI.parse(path) req = Net::HTTP::Post.new(uri) req['authorization'] = "Key #{SECRET_KEY}" req.set_form_data(params) res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |http| http.request(req) end extract_response(res) end
Private Class Methods
extract_response(res)
click to toggle source
# File lib/khalti/request_helper.rb, line 43 def extract_response(res) case res when Net::HTTPSuccess validate_content_type(res['content-type']) JSON.parse res.body else raise Errors::KhaltiError, res.message end end
validate_content_type(content_type)
click to toggle source
# File lib/khalti/request_helper.rb, line 38 def validate_content_type(content_type) return if content_type == 'application/json' raise Errors::InvalidResponseError, 'Content-type is not application/json.' end
validate_secret_key()
click to toggle source
# File lib/khalti/request_helper.rb, line 33 def validate_secret_key return unless SECRET_KEY.nil? || SECRET_KEY.strip.empty? raise Errors::BlankError, 'Ensure KHALTI_SECRET_KEY is not blank.' end