From d3283e12b77f745fa82741598012bc8a1da5a5f0 Mon Sep 17 00:00:00 2001 From: Arnaud Levy <contact@arnaudlevy.com> Date: Wed, 5 Jan 2022 16:15:10 +0100 Subject: [PATCH] import --- .../communication/website/imported/website.rb | 74 +++++-------------- 1 file changed, 19 insertions(+), 55 deletions(-) diff --git a/app/models/communication/website/imported/website.rb b/app/models/communication/website/imported/website.rb index b5dfa2525..1b65775ec 100644 --- a/app/models/communication/website/imported/website.rb +++ b/app/models/communication/website/imported/website.rb @@ -45,6 +45,7 @@ class Communication::Website::Imported::Website < ApplicationRecord sync_media sync_pages sync_posts + website.save_and_sync end handle_asynchronously :run!, queue: 'default' @@ -59,34 +60,20 @@ class Communication::Website::Imported::Website < ApplicationRecord end def sync_authors - begin - skip_publish_callback(University::Person) - wordpress.authors.each do |data| - author = authors.where(university: university, identifier: data['id']).first_or_initialize - author.data = data - author.save - end - # Batch update all changes (1 query only, good for github API limits) - website.publish_people! - ensure - set_publish_callback(University::Person) + wordpress.authors.each do |data| + author = authors.where(university: university, identifier: data['id']).first_or_initialize + author.data = data + author.save end end def sync_categories - begin - skip_publish_callback(Communication::Website::Category) - wordpress.categories.each do |data| - category = categories.where(university: university, identifier: data['id']).first_or_initialize - category.data = data - category.save - end - sync_tree(categories) - # Batch update all changes (1 query only, good for github API limits) - website.publish_categories! - ensure - set_publish_callback(Communication::Website::Category) + wordpress.categories.each do |data| + category = categories.where(university: university, identifier: data['id']).first_or_initialize + category.data = data + category.save end + sync_tree(categories) end def sync_media @@ -98,33 +85,19 @@ class Communication::Website::Imported::Website < ApplicationRecord end def sync_pages - begin - skip_publish_callback(Communication::Website::Page) - wordpress.pages.each do |data| - page = pages.where(university: university, identifier: data['id']).first_or_initialize - page.data = data - page.save - end - sync_tree(pages) - # Batch update all changes (1 query only, good for github API limits) - website.publish_pages! - ensure - set_publish_callback(Communication::Website::Page) + wordpress.pages.each do |data| + page = pages.where(university: university, identifier: data['id']).first_or_initialize + page.data = data + page.save end + sync_tree(pages) end def sync_posts - begin - skip_publish_callback(Communication::Website::Post) - wordpress.posts.each do |data| - post = posts.where(university: university, identifier: data['id']).first_or_initialize - post.data = data - post.save - end - # Batch update all changes (1 query only, good for github API limits) - website.publish_posts! - ensure - set_publish_callback(Communication::Website::Post) + wordpress.posts.each do |data| + post = posts.where(university: university, identifier: data['id']).first_or_initialize + post.data = data + post.save end end @@ -139,13 +112,4 @@ class Communication::Website::Imported::Website < ApplicationRecord generated_element.save end end - - def skip_publish_callback(model) - model.skip_callback(:commit, :after, :publish_github_files, on: [:create, :update]) - end - - - def set_publish_callback(model) - model.set_callback(:commit, :after, :publish_github_files, on: [:create, :update]) - end end -- GitLab