diff --git a/lib/tasks/sync_ntnu_personal_data_tasks.rake b/lib/tasks/sync_ntnu_personal_data_tasks.rake index c063d37..efa69a8 100644 --- a/lib/tasks/sync_ntnu_personal_data_tasks.rake +++ b/lib/tasks/sync_ntnu_personal_data_tasks.rake @@ -3,6 +3,8 @@ module NtnuSyncPlugin def self.sync_journal_papers(query_result, user) puts "Journal Paper for user: #{user.user_name}" journal_papers = query_result.select { |data| data['ER_ACCOUNT'] == user.user_name && data['EI_SN'] == '20100421092921000' } + return if journal_papers.count == 0 + JournalPaper.where(member_profile_id: user.member_profile_id).destroy journal_papers.each do |journal_paper| j_data = JSON.parse(journal_paper['JDATA']) jp = JournalPaper.new @@ -47,6 +49,8 @@ module NtnuSyncPlugin def self.sync_conference_papers(query_result, user) puts "Conference Paper for user: #{user.user_name}" conference_papers = query_result.select { |data| data['ER_ACCOUNT'] == user.user_name && data['EI_SN'] == '20100504082700357' } + return if conference_papers.count == 0 + WritingConference.where(member_profile_id: user.member_profile_id).destroy conference_papers.each do |conference_paper| j_data = JSON.parse(conference_paper['JDATA']) wc = WritingConference.new @@ -106,6 +110,8 @@ module NtnuSyncPlugin def self.sync_projects(query_result, user) puts "Projects for user: #{user.user_name}" projects = query_result.select { |data| data['ER_ACCOUNT'] == user.user_name && data['EI_SN'] == '20101113165022345' } + return if projects.count == 0 + Project.where(member_profile_id: user.member_profile_id).destroy projects.each do |project| j_data = JSON.parse(project['JDATA']) pj = Project.new @@ -161,9 +167,7 @@ module NtnuSyncPlugin puts "Academic treatise books for user: #{user.user_name}" book_type = BookType.where('title.en' => 'academic treatise books') books = query_result.select { |data| data['ER_ACCOUNT'] == user.user_name && data['EI_SN'] == '20101113154035616' } - return if books.empty? - books.each do |book| j_data = JSON.parse(book['JDATA']) bk = Book.new @@ -215,9 +219,7 @@ module NtnuSyncPlugin puts "Academic book chapters for user: #{user.user_name}" book_type = BookType.where('title.en' => 'academic book chapters') books = query_result.select { |data| data['ER_ACCOUNT'] == user.user_name && data['EI_SN'] == '20101113154120441' } - return if books.empty? - books.each do |book| j_data = JSON.parse(book['JDATA']) bk = Book.new @@ -273,9 +275,7 @@ module NtnuSyncPlugin puts "Officially published university textbooks for user: #{user.user_name}" book_type = BookType.where('title.en' => 'officially published university textbooks') books = query_result.select { |data| data['ER_ACCOUNT'] == user.user_name && data['EI_SN'] == '20101117102418434' } - return if books.empty? - books.each do |book| j_data = JSON.parse(book['JDATA']) bk = Book.new @@ -327,9 +327,7 @@ module NtnuSyncPlugin puts "Other authored works for user: #{user.user_name}" book_type = BookType.where('title.en' => 'other authored works') books = query_result.select { |data| data['ER_ACCOUNT'] == user.user_name && data['EI_SN'] == '20101117111154107' } - return if books.empty? - books.each do |book| j_data = JSON.parse(book['JDATA']) bk = Book.new @@ -438,13 +436,6 @@ namespace :sync_ntnu_personal_plugins do query_result.each do |data| available_accounts.add data["ER_ACCOUNT"] end - - # Remove Old JournalPaper, xxx, ... - JournalPaper.destroy_all - WritingConference.destroy_all - Project.destroy_all - Book.destroy_all - # Create book types NtnuSyncPlugin.define_book_types @@ -455,6 +446,17 @@ namespace :sync_ntnu_personal_plugins do NtnuSyncPlugin.sync_journal_papers(query_result, user) NtnuSyncPlugin.sync_conference_papers(query_result, user) NtnuSyncPlugin.sync_projects(query_result, user) + books_for_user = query_result.select do |data| + tmp = (data['ER_ACCOUNT'] == user.user_name) + tmp1 = (data['EI_SN'] == '20101113154035616') + tmp2 = (data['EI_SN'] == '20101113154120441') + tmp3 = (data['EI_SN'] == '20101117102418434') + tmp4 = (data['EI_SN'] == '20101117111154107') + tmp && (tmp1 || tmp2 || tmp3 || tmp4) + end + if books_for_user.count != 0 + Book.where(member_profile_id: user.member_profile_id,:pages=>nil).destroy + end NtnuSyncPlugin.sync_academic_treatise_books(query_result, user) NtnuSyncPlugin.sync_academic_book_chapters(query_result, user) NtnuSyncPlugin.sync_officially_published_university_textbooks(query_result, user)