class Bandwidth::BaseController

BaseController.

BaseController.

BaseController.

BaseController.

BaseController.

Attributes

config[RW]
http_call_back[RW]

Public Class Methods

new(config, http_call_back: nil) click to toggle source
# File lib/bandwidth/messaging_lib/messaging/controllers/base_controller.rb, line 11
def initialize(config, http_call_back: nil)
  @config = config
  @http_call_back = http_call_back

  @global_headers = {
    'user-agent' => 'ruby-sdk'
  }
end

Public Instance Methods

execute_request(request, binary: false) click to toggle source
# File lib/bandwidth/messaging_lib/messaging/controllers/base_controller.rb, line 28
def execute_request(request, binary: false)
  @http_call_back.on_before_request(request) if @http_call_back

  APIHelper.clean_hash(request.headers)
  request.headers.merge!(@global_headers)

  response = if binary
               config.http_client.execute_as_binary(request)
             else
               config.http_client.execute_as_string(request)
             end
  @http_call_back.on_after_response(response) if @http_call_back

  response
end
validate_parameters(args) click to toggle source
# File lib/bandwidth/messaging_lib/messaging/controllers/base_controller.rb, line 20
def validate_parameters(args)
  args.each do |_name, value|
    if value.nil?
      raise ArgumentError, "Required parameter #{_name} cannot be nil."
    end
  end
end
validate_response(response) click to toggle source
# File lib/bandwidth/messaging_lib/messaging/controllers/base_controller.rb, line 44
def validate_response(response)
  raise APIException.new 'HTTP Response Not OK', response unless
    response.status_code.between?(200, 208) # [200,208] = HTTP OK
end