spark-solutions/spree_mailchimp_ecommerce

View on GitHub
app/jobs/spree_mailchimp_ecommerce/application_job.rb

Summary

Maintainability
A
0 mins
Test Coverage
module SpreeMailchimpEcommerce
  class ApplicationJob < ActiveJob::Base
    around_perform do |job, block|
      block.call if ready_for_mailchimp? || job.class == SpreeMailchimpEcommerce::CreateStoreJob
    end

    private

    def ready_for_mailchimp?
      [
        mailchimp_api_key,
        mailchimp_store_id,
        mailchimp_list_id,
        mailchimp_store_name,
        cart_url
      ].map(&:nil?).none?
    end

    def mailchimp_api_key
      ::SpreeMailchimpEcommerce.configuration.mailchimp_api_key
    end

    def mailchimp_store_id
      ::SpreeMailchimpEcommerce.configuration.mailchimp_store_id
    end

    def mailchimp_list_id
      ::SpreeMailchimpEcommerce.configuration.mailchimp_list_id
    end

    def mailchimp_store_name
      ::SpreeMailchimpEcommerce.configuration.mailchimp_store_name
    end

    def cart_url
      ::SpreeMailchimpEcommerce.configuration.cart_url
    end

    def gibbon_store
      ::Gibbon::Request.new(api_key: mailchimp_api_key).
        ecommerce.stores(mailchimp_store_id)
    end
  end
end