Нужна помощь в переводе почтового запроса cURL (с заголовками и файлом) в почтовый запрос RestClient - PullRequest
0 голосов
/ 26 сентября 2019

Я пытаюсь отправить файл CSV через RestClient в соответствии с инструкциями, приведенными здесь: "https://dev.na.bambora.com/docs/guides/batch_payment/batch/#example-batch-requests"

Я получаю 400 неверных запросов.

Я пытался использовать их почтальонСбор с некоторым успехом, но пока не удалось заставить это работать с RestClient в моем приложении.

Вот соответствующий запрос cURL от документов, связанных выше (не мой код):

curl -X POST \
  https://api.na.bambora.com/v1/batchpayments \
  -H 'authorization: Passcode {{passcode_encoded}}' \
  -H 'content-type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW' \
  -F file=@transactions.csv

Ниже приведена моя попытка написать временный CSV-файл и опубликовать его через RestClient:

def self.generate_charge(plaid_account, amount)
  csv = generate_csv(plaid_account, amount)
  passcode = Rails.env.production? ? ENV['BAMBORA_PRODUCTION_AUTH_CODE'] : ENV['BAMBORA_DEVELOPMENT_AUTH_CODE']

  response = RestClient.post(
    'https://api.na.bambora.com/v1/batchpayments',
    {:file => File.open(csv.path)},
    {
      :"authorization" => "Passcode #{passcode}"
    }
  )
end

def self.generate_csv(plaid_account, amount)
  eft = PlaidClient.select_account(plaid_account.plaid_access_token, plaid_account.plaid_account_id)[:eft]
  tempfile = Tempfile.new('bambora.csv')

  CSV.open(tempfile, 'wb') do |csv|
    csv << ['E', 'D', eft.institution, eft.branch, eft.account, amount, '0', plaid_account.owner_name]
  end
end

Я пропустил заголовок «content-type», потому что, согласно документам restclient, он: «Auto-обнаруживает, что у вас есть значение файла, отправляет его как multipart [и] автоматически обнаруживает mime файла и устанавливает его в заголовке полезной нагрузки для каждой записи ".

Если кто-то желает взглянуть наДокументы и направьте меня в правильном направлении, я буду очень признателен. Спасибо.

...