Sha256: bf460a77607ee4c818346f46f7a8f19c787d050833f2825a6b16bcee6545691c
Contents?: true
Size: 1.05 KB
Versions: 9
Compression:
Stored size: 1.05 KB
Contents
module SolidusBling class Seller < ApplicationRecord validates :name, presence: true validates :external_id, presence: true belongs_to :account def self.upsert_sellers account account.check_token BlingApi.configure { |config| config.access_token = account.access_token } sellers = BlingApi::Seller.get_sellers upsert_sellers = sellers.map { |seller| { name: seller[:nome], external_id: seller[:id], account_id: account.id, active: true } } SolidusBling::Seller.upsert_all(upsert_sellers, unique_by: :external_id) inactivate_sellers(sellers) end def self.default find_by(default: true) end def self.actives where(active: true) end def self.inactivate_sellers sellers_bling ids_sellers_bling = sellers_bling.pluck(:id) ids_sellers_store = pluck(:external_id).map(&:to_i) ids_sellers_inactive = ids_sellers_store - ids_sellers_bling sellers_inactive = where(external_id: ids_sellers_inactive) sellers_inactive.update_all(active: false) end end end
Version data entries
9 entries across 9 versions & 1 rubygems