class Workarea::Klarna::Gateway::UpdateSessionRequest

Public Class Methods

new(order, session_id = nil) click to toggle source
Calls superclass method Workarea::Klarna::Gateway::Request::new
# File lib/workarea/klarna/gateway/update_session_request.rb, line 5
def initialize(order, session_id = nil)
  super(order)

  @session_id = session_id || find_session_id

  @path = "payments/v1/sessions/#{@session_id}"
  @method = 'post'
  @summary = I18n.t('workarea.klarna.gateway.request.update_session')
end

Public Instance Methods

body() click to toggle source
# File lib/workarea/klarna/gateway/update_session_request.rb, line 15
def body
  Gateway::Order
    .new(order, payment: payment)
    .to_h
    .except(:shipping_address, :billing_address)
end

Private Instance Methods

find_session_id() click to toggle source
# File lib/workarea/klarna/gateway/update_session_request.rb, line 24
def find_session_id
  Payment::KlarnaSession.find_or_initialize_by(id: order.id).session_id
end