Module: Gluttonberg::Membership::Import::ClassMethods
- Defined in:
- lib/gluttonberg/membership/import.rb
Instance Method Summary collapse
- #contains_user?(user, list) ⇒ Boolean
-
#importCSV(file_path, invite, group_ids) ⇒ Object
takes complete path to csv file.
Instance Method Details
#contains_user?(user, list) ⇒ Boolean
51 52 53 54 55 56 |
# File 'lib/gluttonberg/membership/import.rb', line 51 def contains_user?(user , list) list.each do |record| return true if record.id == user.id || record.email == user.email end false end |
#importCSV(file_path, invite, group_ids) ⇒ Object
takes complete path to csv file. and returns successfull_users , failed_users and updated_users arrays that contains user objects if user exist with given email then update its information otherwise create a new user for it returns [successfull_users , failed_users , updated_users , ] if csv format is incorrect then it will return a string “CSV file format is invalid”
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
# File 'lib/gluttonberg/membership/import.rb', line 14 def importCSV(file_path , invite , group_ids ) begin require 'csv' csv_table = CSV.read(file_path) rescue => e return "Please provide a valid CSV file with correct column names." end known_columns = PrivateMethods.find_known_columns(csv_table) other_columns = PrivateMethods.find_other_columns(csv_table) successfull_users = [] failed_users = [] updated_users = [] if PrivateMethods.known_columns_valid?(known_columns) csv_table.each_with_index do |row , index | if index > 0 # ignore first row because its meta data row user_info = PrivateMethods.read_data_row(row, known_columns, other_columns) #attach user to an group if its valid PrivateMethods.attach_user_to_group(user_info, row, known_columns, other_columns, group_ids) user = where(:email => row[known_columns[:email]]).first if user.blank? PrivateMethods.create_member(user_info, invite, row, successfull_users , failed_users , updated_users) else PrivateMethods.update_member(user, user_info, successfull_users , failed_users , updated_users) end end # if csv row index > 0 end #loop else return "Please provide a valid CSV file with correct column names" end #if [successfull_users , failed_users , updated_users ] end |