Class: Zadarma::Client
- Inherits:
-
Object
- Object
- Zadarma::Client
- Extended by:
- Methods
- Defined in:
- lib/zadarma/client.rb
Class Method Summary collapse
Methods included from Methods
balance, callback, pbx_internal, pbx_record, pbx_statistics, price, redirection, send_sms, set_redirect, set_sip_caller, sip, statistics
Class Method Details
.request(method, path, params = {}) ⇒ Object
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/zadarma/client.rb', line 11 def request(method, path, params = {}) raise "No auth data provided" unless Zadarma.api_key && Zadarma.api_secret params.merge!(format: "json") response = client.send(method, "/v1" + path) do |request| request.params = params request.headers["Accept"] = "application/json" request.headers["Authorization"] = "#{Zadarma.api_key}:#{signature("/v1" + path, params)}" end result = ActiveSupport::JSON.decode(response.body).with_indifferent_access raise Zadarma::Error.new("Error [HTTP #{response.status}]: #{result[:message]} ") unless "success" == result[:status] result.except("status") rescue ActiveSupport::JSON.parse_error raise Zadarma::Error.new("Response is not JSON: #{response.body}") end |