Commit c33e9213 by Thanh Hung Pham

Complete feature import data from csv

parent 3a4a80c2
...@@ -18,48 +18,85 @@ class CSVReader ...@@ -18,48 +18,85 @@ class CSVReader
Thread.new do Thread.new do
begin begin
begin begin
# Area information
Area.new(name: 'Viet Nam').save if Area.where(name: 'Viet Nam').blank?
Area.new(name: 'International').save if Area.where(name: 'International').blank?
csv_text = File.read(@file) csv_text = File.read(@file)
csv = CSV.parse(csv_text, headers: :true) csv = CSV.parse(csv_text, headers: :true)
csv.each do |row| csv.each do |row|
# Job type information
job_type_name = row['type'].strip unless row['type'].nil?
job_type = JobType.new job_type = JobType.new
job_type.name = row['type'] job_type.name = job_type_name
job_type.save if JobType.find_by_name(row['type']).blank? job_type.save if JobType.find_by_name(job_type_name).blank?
# Contact information
contact_name = row['contact name'].strip unless row['contact name'].nil?
contact_email = row['contact email'].strip unless row['contact email'].nil?
contact_phone = row['contact phone'].strip unless row['contact phone'].nil?
contact = Contact.new contact = Contact.new
contact.email = row['contact email'] contact.email = contact_email
contact.name = row['contact name'] contact.name = contact_name
contact.phone = row['contact phone'] contact.phone = contact_phone
contact.save if Contact.find_by_email(row['email']).blank? contact.save if Contact.find_by_email(contact_email).blank?
# Company information
company_address = row['company address'].strip unless row['company address'].nil?
company_district = row['company district'].strip unless row['company district'].nil?
company_name = row['company name'].strip unless row['company name'].nil?
company_province = row['company province'].strip unless row['company province'].nil?
company = Company.new company = Company.new
company.address = row['company address'] company.address = company_address
company.district = row['company district'] company.district = company_district
company.name = row['company name'] company.name = company_name
company.province = row['company province'] company.province = company_province
company.save if Company.find_by_name(row['name']).blank? company.save if Company.find_by_name(company_name).blank?
# Category information
category_name = row['category'].strip unless row['category'].nil?
category = Category.new category = Category.new
category.name = row['category'] category.name = category_name
category.save if Category.find_by_name(row['name']).blank? category.save if Category.find_by_name(category_name).blank?
# City information
city_name = row['work place'].strip unless row['work place'].nil?
city = City.new
city.name = city_name
city.area = Area.find(1)
city.save if City.find_by_name(city_name).blank?
# Job information
job_benefit = row['benefit'].strip unless row['benefit'].nil?
job_description = row['description'].strip unless row['description'].nil?
job_level = row['level'].strip unless row['level'].nil?
job_name = row['name'].strip unless row['name'].nil?
job_requirement = row['requirement'].strip unless row['requirement'].nil?
job_salary = row['salary'].strip unless row['salary'].nil?
job = Job.new job = Job.new
job.benefit = row['benefit'] job.benefit = job_benefit
job.description = row['description'] job.description = job_description
job.level = row['level'] job.level = job_level
job.name = row['name'] job.name = job_name
job.requirement = row['requirement'] job.requirement = job_requirement
job.salary = row['salary'] job.salary = job_salary
job.city = City.find_by_name(row['work place']) job.city = city
job.job_type = job_type job.job_type = job_type
job.contact = contact job.contact = contact
job.company = company job.company = company
job.save job.save if Job.where(name: job_name, city: city, company: company).blank?
# Job Category Information
job_category = JobCategory.new job_category = JobCategory.new
job_category.job = job job_category.job = job
job_category.category = category job_category.category = category
job_category.save job_category.save if JobCategory.where(job: job, category: category).blank?
end end
rescue StandardError => e rescue StandardError => e
logger.error(e.message) logger.error(e.message)
......
This source diff could not be displayed because it is too large. You can view the blob instead.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment