From d2459d14b44d272a31324dfb2235ab4d0482fb24 Mon Sep 17 00:00:00 2001 From: Shana Date: Thu, 10 Mar 2022 07:30:43 -0800 Subject: [PATCH 1/6] prevent job from running w doi is blank --- app/jobs/hyrax/doi/register_doi_job.rb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/jobs/hyrax/doi/register_doi_job.rb b/app/jobs/hyrax/doi/register_doi_job.rb index 153a3dd9..8c78ab8e 100644 --- a/app/jobs/hyrax/doi/register_doi_job.rb +++ b/app/jobs/hyrax/doi/register_doi_job.rb @@ -14,6 +14,8 @@ class RegisterDOIJob < ApplicationJob # @param registrar [String] Note this is a string and not a symbol because ActiveJob cannot serialize a symbol # @param registrar_opts [Hash] def perform(model, registrar: Hyrax.config.identifier_registrars.keys.first, registrar_opts: {}) + return if model.doi.blank? + Hyrax::Identifier::Dispatcher .for(registrar.to_sym, **registrar_opts) .assign_for!(object: model, attribute: :doi) From 4ac28e983da8b8ca52c5842d99decbb88f03b95c Mon Sep 17 00:00:00 2001 From: Shana Date: Thu, 10 Mar 2022 14:28:17 -0800 Subject: [PATCH 2/6] doi maps to original_doi --- app/jobs/hyrax/doi/register_doi_job.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/jobs/hyrax/doi/register_doi_job.rb b/app/jobs/hyrax/doi/register_doi_job.rb index 8c78ab8e..51c49444 100644 --- a/app/jobs/hyrax/doi/register_doi_job.rb +++ b/app/jobs/hyrax/doi/register_doi_job.rb @@ -14,11 +14,11 @@ class RegisterDOIJob < ApplicationJob # @param registrar [String] Note this is a string and not a symbol because ActiveJob cannot serialize a symbol # @param registrar_opts [Hash] def perform(model, registrar: Hyrax.config.identifier_registrars.keys.first, registrar_opts: {}) - return if model.doi.blank? + return if model.original_doi.blank? Hyrax::Identifier::Dispatcher .for(registrar.to_sym, **registrar_opts) - .assign_for!(object: model, attribute: :doi) + .assign_for!(object: model, attribute: :original_doi) rescue Hyrax::DOI::DataCiteClient::Error => e user = ::User.find_by(email: model.depositor) if model.depositor From 1ecbafb817d119b35ee37118a8f43978b65eee63 Mon Sep 17 00:00:00 2001 From: Shana Date: Thu, 10 Mar 2022 16:45:15 -0800 Subject: [PATCH 3/6] original_doi as a fallback --- app/jobs/hyrax/doi/register_doi_job.rb | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/app/jobs/hyrax/doi/register_doi_job.rb b/app/jobs/hyrax/doi/register_doi_job.rb index 51c49444..d77c48d2 100644 --- a/app/jobs/hyrax/doi/register_doi_job.rb +++ b/app/jobs/hyrax/doi/register_doi_job.rb @@ -14,11 +14,12 @@ class RegisterDOIJob < ApplicationJob # @param registrar [String] Note this is a string and not a symbol because ActiveJob cannot serialize a symbol # @param registrar_opts [Hash] def perform(model, registrar: Hyrax.config.identifier_registrars.keys.first, registrar_opts: {}) - return if model.original_doi.blank? + doi = model.doi || [model.original_doi] + return if doi.blank? Hyrax::Identifier::Dispatcher .for(registrar.to_sym, **registrar_opts) - .assign_for!(object: model, attribute: :original_doi) + .assign_for!(object: model, attribute: doi) rescue Hyrax::DOI::DataCiteClient::Error => e user = ::User.find_by(email: model.depositor) if model.depositor From 558f189e5ab0e11890151b3180e7a32be150d6d7 Mon Sep 17 00:00:00 2001 From: Shana Date: Thu, 10 Mar 2022 17:31:22 -0800 Subject: [PATCH 4/6] Update register_doi_job.rb --- app/jobs/hyrax/doi/register_doi_job.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/jobs/hyrax/doi/register_doi_job.rb b/app/jobs/hyrax/doi/register_doi_job.rb index d77c48d2..d747a44f 100644 --- a/app/jobs/hyrax/doi/register_doi_job.rb +++ b/app/jobs/hyrax/doi/register_doi_job.rb @@ -14,12 +14,12 @@ class RegisterDOIJob < ApplicationJob # @param registrar [String] Note this is a string and not a symbol because ActiveJob cannot serialize a symbol # @param registrar_opts [Hash] def perform(model, registrar: Hyrax.config.identifier_registrars.keys.first, registrar_opts: {}) - doi = model.doi || [model.original_doi] + doi = model.doi.presence || [model.original_doi] return if doi.blank? Hyrax::Identifier::Dispatcher .for(registrar.to_sym, **registrar_opts) - .assign_for!(object: model, attribute: doi) + .assign_for!(object: model, attribute: :doi ) rescue Hyrax::DOI::DataCiteClient::Error => e user = ::User.find_by(email: model.depositor) if model.depositor From d4c21bed8b6e65f164cf17c100c8c839ab7dde71 Mon Sep 17 00:00:00 2001 From: Shana Date: Thu, 10 Mar 2022 17:40:15 -0800 Subject: [PATCH 5/6] revert changes --- app/jobs/hyrax/doi/register_doi_job.rb | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/app/jobs/hyrax/doi/register_doi_job.rb b/app/jobs/hyrax/doi/register_doi_job.rb index d747a44f..b2062809 100644 --- a/app/jobs/hyrax/doi/register_doi_job.rb +++ b/app/jobs/hyrax/doi/register_doi_job.rb @@ -14,8 +14,7 @@ class RegisterDOIJob < ApplicationJob # @param registrar [String] Note this is a string and not a symbol because ActiveJob cannot serialize a symbol # @param registrar_opts [Hash] def perform(model, registrar: Hyrax.config.identifier_registrars.keys.first, registrar_opts: {}) - doi = model.doi.presence || [model.original_doi] - return if doi.blank? + return if model.doi.blank? Hyrax::Identifier::Dispatcher .for(registrar.to_sym, **registrar_opts) From c51e66b04b2dcb38be6d85d9809bc138cb4b25fb Mon Sep 17 00:00:00 2001 From: Shana Date: Thu, 10 Mar 2022 17:41:40 -0800 Subject: [PATCH 6/6] rubocop --- app/jobs/hyrax/doi/register_doi_job.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/jobs/hyrax/doi/register_doi_job.rb b/app/jobs/hyrax/doi/register_doi_job.rb index b2062809..8c78ab8e 100644 --- a/app/jobs/hyrax/doi/register_doi_job.rb +++ b/app/jobs/hyrax/doi/register_doi_job.rb @@ -18,7 +18,7 @@ def perform(model, registrar: Hyrax.config.identifier_registrars.keys.first, reg Hyrax::Identifier::Dispatcher .for(registrar.to_sym, **registrar_opts) - .assign_for!(object: model, attribute: :doi ) + .assign_for!(object: model, attribute: :doi) rescue Hyrax::DOI::DataCiteClient::Error => e user = ::User.find_by(email: model.depositor) if model.depositor