Commit 8f0767ca788fab088b6138d0ba48863e1c12c6d3

Authored by Victor Costa
1 parent 67ee0bbb

virtuoso: fix harvest job

plugins/virtuoso/controllers/virtuoso_plugin_admin_controller.rb
1 1 class VirtuosoPluginAdminController < AdminController
2 2  
3   - #validates :dspace_servers, presence: true
4   -
5 3 def index
6   - settings = params[:settings]
  4 + settings = params[:settings]
7 5 settings ||= {}
8 6 @settings = Noosfero::Plugin::Settings.new(environment, VirtuosoPlugin, settings)
9 7 @harvest_running = VirtuosoPlugin::DspaceHarvest.new(environment).find_job.present?
10 8 if request.post?
11   - settings[:dspace_servers].delete_if do | server |
  9 + settings[:dspace_servers].delete_if do | server |
12 10 server[:dspace_uri].empty?
13 11 end
14 12 @settings.save!
... ...
plugins/virtuoso/lib/virtuoso_plugin/dspace_harvest.rb
1 1 #inspired by https://github.com/code4lib/ruby-oai/blob/master/lib/oai/harvester/harvest.rb
2 2 class VirtuosoPlugin::DspaceHarvest
3 3  
4   - DC_CONVERSION = [:title, :creator, :subject, :description, :date, :type, :identifier, :language, :rights, :format]
5   -
6   - def initialize(environment, dspace_uri = "")
  4 + def initialize(environment, dspace_uri = nil)
7 5 @environment = environment
8 6 @dspace_uri = dspace_uri
9 7 end
... ... @@ -69,19 +67,19 @@ class VirtuosoPlugin::DspaceHarvest
69 67 settings.last_harvest = nil
70 68 settings.save!
71 69 end
72   - job = VirtuosoPlugin::DspaceHarvest::Job.new(@environment.id)
  70 + job = VirtuosoPlugin::DspaceHarvest::Job.new(@environment.id, @dspace_uri)
73 71 Delayed::Job.enqueue(job)
74 72 end
75 73 end
76 74  
77 75 def find_job
78   - Delayed::Job.where(:handler => "--- !ruby/struct:VirtuosoPlugin::DspaceHarvest::Job\nenvironment_id: #{@environment.id}\n")
  76 + Delayed::Job.where(:handler => "--- !ruby/struct:VirtuosoPlugin::DspaceHarvest::Job\nenvironment_id: #{@environment.id}\ndspace_uri: #{@dspace_uri}\n")
79 77 end
80 78  
81   - class Job < Struct.new(:environment_id)
  79 + class Job < Struct.new(:environment_id, :dspace_uri)
82 80 def perform
83 81 environment = Environment.find(environment_id)
84   - harvest = VirtuosoPlugin::DspaceHarvest.new(environment)
  82 + harvest = VirtuosoPlugin::DspaceHarvest.new(environment, dspace_uri)
85 83 harvest.run
86 84 end
87 85 end
... ...