Class: Workarea::SetupKlarnaSession

Inherits:
Object
  • Object
show all
Defined in:
app/services/workarea/setup_klarna_session.rb

Instance Method Summary collapse

Constructor Details

#initialize(checkout) ⇒ SetupKlarnaSession

Returns a new instance of SetupKlarnaSession.



5
6
7
# File 'app/services/workarea/setup_klarna_session.rb', line 5

def initialize(checkout)
  @checkout = checkout
end

Instance Method Details

#performObject



9
10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'app/services/workarea/setup_klarna_session.rb', line 9

def perform
  return unless payment.eligible_for_klarna?

  session = Payment::KlarnaSession.find_or_initialize_by(id: order.id)

  if session.persisted?
    Klarna.gateway.update_session(order, session.session_id)
  else
    response = Klarna.gateway.create_session(order)
    return unless response.success?

    session.update!(response.body)
  end
end