module Klarna::Checkout::Operations::Capture

Public Instance Methods

capture_order(amount = nil) click to toggle source
# File lib/klarna/checkout/operations/capture.rb, line 7
def capture_order(amount = nil)
  response = execute_capture_request(amount)

  unless response.status == 201
    raise Klarna::Checkout::Errors::OrderCaptureError.new(@status, 'capture_not_allowed')
  end

  @status = 'CAPTURED'
  response
end

Private Instance Methods

execute_capture_request(amount) click to toggle source
# File lib/klarna/checkout/operations/capture.rb, line 20
def execute_capture_request(amount)
  https_connection.post do |req|
    req.url "/ordermanagement/v1/orders/#{@reference}/captures"
    req.options.timeout = 10

    req.headers['Authorization'] = authorization
    req.headers['Content-Type']  = 'application/json'

    req.body = {
      'captured_amount': amount.nil? ? @klarna_response['order_amount'] : amount,
      'order_lines': @items
    }.to_json
  end
end