class DealRedemptions::Admin::Importer

Public Class Methods

new(company = nil, product = nil) click to toggle source
# File lib/deal_redemptions/admin/importer.rb, line 6
def initialize(company = nil, product = nil)
  @company = company
  @product = product
end

Public Instance Methods

export_redemptions_csv(redemptions) click to toggle source
# File lib/deal_redemptions/admin/importer.rb, line 34
def export_redemptions_csv(redemptions)
  @redeem_codes = []

  CSV.generate({ skip_blanks: true }) do |csv|
    csv << ["id", 'first_name', 'last_name', 'email', 'phone', 'address', 'address2', 'city', 'state', 'zip_code', 'country', 'redemption_codes', 'comments', 'created_at']
    redemptions.each do |item|
      # Loop redemption codes used
      item.redeem_code.each do |code|
        @redeem_codes.push code.code
      end

      csv << [
        item.id,
        item.first_name,
        item.last_name,
        item.email_address,
        item.phone,
        item.address1,
        item.address2,
        item.city,
        item.state,
        item.zip_code,
        item.country,
        @redeem_codes.join(', '),
        item.comments,
        item.created_at
      ]
    end
  end .html_safe
end
import_codes_csv(file) click to toggle source
# File lib/deal_redemptions/admin/importer.rb, line 11
def import_codes_csv(file)
  begin
    CSV.foreach file.path do |row|
      unless row[0].blank?
        code = DealRedemptions::RedeemCode.by_company(@company).find_by_code(row[0])

        unless code
          DealRedemptions::RedeemCode.create(
            company_id: @company,
            product_id: @product,
            code: row[0]
          )
        end
      end
    end

    # Return true after code import
    true
  rescue
    false
  end
end