class Nfe::Webservices::Sender

Attributes

errors[R]
result[R]

Public Class Methods

new(certificate, private_key, ws_info) click to toggle source
# File lib/nfe/webservices/sender.rb, line 8
def initialize(certificate, private_key, ws_info)
  @certificate = certificate
  @private_key = private_key
  @errors = ActiveModel::Errors.new(self)
  @ws_info = ws_info
end

Public Instance Methods

execute(object) click to toggle source
# File lib/nfe/webservices/sender.rb, line 15
def execute(object)
  call_client_soap(object) if message_size_valid?(object.to_xml)
  @errors.empty?
end

Private Instance Methods

call_client_soap(object) click to toggle source
# File lib/nfe/webservices/sender.rb, line 21
def call_client_soap(object)
  @result = client_soap.call(object.to_xml)
rescue Exception => error
  @errors.add(:base, error.to_s)
end
client_soap() click to toggle source
# File lib/nfe/webservices/sender.rb, line 27
def client_soap
  ClientSoap.new(@certificate, @private_key, @ws_info)
end
message_size_valid?(xml) click to toggle source
# File lib/nfe/webservices/sender.rb, line 31
def message_size_valid?(xml)
  quinhentos_kilobytes = 512000

  if xml.bytesize > quinhentos_kilobytes
    @errors.add(:base, I18n.t("webservice.dispatch.exceeded_size"))
  end

  @errors.empty?
end