class WebmaniabrNfeRuby::ApiInterface

Public Class Methods

new(action) click to toggle source
# File lib/webmaniabr_nfe_ruby/api_interface.rb, line 6
def initialize(action)
  @uri = URI(base_uri + action)
end

Public Instance Methods

process(options = {}) click to toggle source
# File lib/webmaniabr_nfe_ruby/api_interface.rb, line 10
def process(options = {})
  authenticate = WebmaniabrNfeRuby.configuration.authenticate

  res =  Net::HTTP.start(@uri.hostname, @uri.port, use_ssl: true) do |http|
    case options[:method]
    when 'GET'
      req = Net::HTTP::Get.new(@uri)
    when 'POST'
      req = Net::HTTP::Post.new(@uri)
    when 'PUT'
      req = Net::HTTP::Put.new(@uri)
    end

    req['X-Consumer-Key']        = authenticate.consumer_key
    req['X-Consumer-Secret']     = authenticate.consumer_secret
    req['X-Access-Token']        = authenticate.access_token
    req['X-Access-Token-Secret'] = authenticate.access_token_secret
    req['Content-Type']          = 'application/json'

    if options[:params]
      req.body = options[:params].to_json
    end

    http.request(req)
  end

  # converte o json para hash e converte as string keys para sym
  return JSON.parse(res.body).inject({}) { |memo, (k,v)| memo[k.to_sym] = v; memo }
end

Private Instance Methods

base_uri() click to toggle source
# File lib/webmaniabr_nfe_ruby/api_interface.rb, line 41
def base_uri
  'https://webmaniabr.com/api/1/'
end