Class: MyActiveMerchants::Card

Inherits:
Object
  • Object
show all
Includes:
DefaultErrorContainer, ElasticAPM::SpanHelpers
Defined in:
app/my_lib/my_active_merchants/card.rb

Class Method Summary collapse

Instance Method Summary collapse

Methods included from DefaultErrorContainer

#error, #error_message_simple, #merge_errors

Constructor Details

#initialize(user, gateway) ⇒ Card

Returns a new instance of Card.

Parameters:

  • user (User)
  • gateway (Symbol)

    either :omise or :gb_primepay



10
11
12
13
# File 'app/my_lib/my_active_merchants/card.rb', line 10

def initialize(user, gateway)
  @user = user
  @gateway = gateway
end

Class Method Details

.save_guest(_param, gateway) ⇒ Object



53
54
55
56
57
58
59
60
61
62
63
64
65
66
# File 'app/my_lib/my_active_merchants/card.rb', line 53

def save_guest(_param, gateway)
  case gateway.to_sym
  when :omise
    name = "#{reservation.username} reservation ID #{reservation_id}"
    omise_customer_id = create_omise_customer(reservation.email, name).id
    customer = {
      customer_id: omise_customer_id,
      reservation_id: reservation_id,
    }
    ::Externals::Omise::Customer.create!(customer)
  when :gb_primepay
    raise NotImplementedError
  end
end

Instance Method Details

#listObject



15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'app/my_lib/my_active_merchants/card.rb', line 15

def list
  case gateway.to_sym
  when :omise
    customer = Omise::Customer.retrieve(user.omise_customer_id)
    active_cards = customer.cards.reject(&:deleted)
    active_cards.map do |card|
      MyActiveMerchants::CardSerializer.new(card, gateway)
    end
  when :gb_primepay
    user.gb_primepay_cards.map do |card|
      MyActiveMerchants::CardSerializer.new(card, gateway)
    end
  end
end

#save(param) ⇒ Object

Parameters:

  • param (Object)

    if Omise, then it's a Token if GB PrimePay then it's a JSON

    • expiration_month

    • expiration_year

    • last_digits

    • name

    • token

    • user_id



40
41
42
43
44
45
46
47
48
49
# File 'app/my_lib/my_active_merchants/card.rb', line 40

def save(param)
  case gateway.to_sym
  when :omise
    omise_save(param)
  when :gb_primepay
    gb_primepay_save(param)
  else
    raise NotImplementedError
  end
end