class Bambora::BatchUpload::BeanstreamSendBatch

Constants

BATCH_PROCESS_SUCCESS

Attributes

file_path[RW]
process_date[RW]
process_now[RW]

Public Class Methods

new(file_path, process_date, process_now) click to toggle source
# File lib/bambora/batch_upload/beanstream_send_batch.rb, line 12
def initialize(file_path, process_date, process_now)
  @file_path    = file_path
  @process_date = process_date
  @process_now  = process_now
end

Public Instance Methods

send() click to toggle source
# File lib/bambora/batch_upload/beanstream_send_batch.rb, line 20
def send
  c = Curl::Easy.new(batch_uploads_api_url) do |curl| 
    curl.headers["Authorization"] = "Passcode #{encoded_pass_code}"
  end
  c.multipart_form_post  = true
  c.http_post(criteria_content,file_content)
  response       = JSON.parse(c.body)
  response_code  = c.response_code
  if response["code"] == BATCH_PROCESS_SUCCESS 
    response["batch_id"]
  else 
    raise BatchUploadError.new(code: response["code"], category: response["category"], message: response["message"], http_code: response_code)
  end
end

Private Instance Methods

batch_uploads_api_key() click to toggle source
# File lib/bambora/batch_upload/beanstream_send_batch.rb, line 60
def batch_uploads_api_key
  Bambora::BatchUpload.batch_upload_api_key
end
batch_uploads_api_url() click to toggle source
# File lib/bambora/batch_upload/beanstream_send_batch.rb, line 64
def batch_uploads_api_url
  Bambora::BatchUpload.get_batch_upload_api_url
end
criteria_content() click to toggle source
# File lib/bambora/batch_upload/beanstream_send_batch.rb, line 37
def criteria_content
  criteria_content  = Curl::PostField.content("criteria",
                                              "{'process_date':#{process_date_formatted},'process_now':#{process_now} }",
                                              "application/json")
end
encoded_pass_code() click to toggle source
# File lib/bambora/batch_upload/beanstream_send_batch.rb, line 52
def encoded_pass_code
  Base64.strict_encode64("#{merchant_id}:#{batch_uploads_api_key}")
end
file_content() click to toggle source
# File lib/bambora/batch_upload/beanstream_send_batch.rb, line 43
def file_content
  file_content      = Curl::PostField.file("file1",file_path)
end
merchant_id() click to toggle source
# File lib/bambora/batch_upload/beanstream_send_batch.rb, line 56
def merchant_id
  Bambora::BatchUpload.merchant_id
end
process_date_formatted() click to toggle source
# File lib/bambora/batch_upload/beanstream_send_batch.rb, line 48
def process_date_formatted
  process_date.to_s.gsub("-","")
end