class Gemgento::API::SOAP::Globalcollect::SavedCc
Public Class Methods
fetch(user)
click to toggle source
# File lib/gemgento/api/soap/globalcollect/saved_cc.rb, line 13 def self.fetch(user) saved_cards = [] tokens(user.magento_id).each do |token| saved_cards << sync_magento_to_local(token, user.id) end # destroy saved cards that were not returned SavedCreditCard.where(user: user).where('id NOT IN (?)', saved_cards.collect(&:id)).delete_all end
fetch_all()
click to toggle source
# File lib/gemgento/api/soap/globalcollect/saved_cc.rb, line 7 def self.fetch_all User.all.each do |user| fetch(user) end end
tokens(customer_id)
click to toggle source
# File lib/gemgento/api/soap/globalcollect/saved_cc.rb, line 24 def self.tokens(customer_id) response = MagentoApi.create_call(:globalcollect_tokens, {customer_id: customer_id}) if response.success? if response.body[:result][:item].nil? return [] else response.body[:result][:item] = [response.body[:result][:item]] unless response.body[:result][:item].is_a? Array return response.body[:result][:item] end else return false end end
Private Class Methods
sync_magento_to_local(token, user_id)
click to toggle source
# File lib/gemgento/api/soap/globalcollect/saved_cc.rb, line 41 def self.sync_magento_to_local(token, user_id) saved_cc = SavedCreditCard.find_or_initialize_by(magento_id: token[:token_id]) saved_cc.user_id = user_id saved_cc.token = token[:token] saved_cc.cc_number = token[:cc_number] saved_cc.exp_month = token[:expire_date][0..1] saved_cc.exp_year = token[:expire_date][2..3] saved_cc.cc_type = token[:payment_product_id] saved_cc.save return saved_cc end