Skip to content

Commit

Permalink
adding assets setter and getter to BulkTask
Browse files Browse the repository at this point in the history
  • Loading branch information
Tom Johnson committed Jul 29, 2014
1 parent a17034d commit 0e08a02
Show file tree
Hide file tree
Showing 2 changed files with 38 additions and 4 deletions.
19 changes: 15 additions & 4 deletions app/models/bulk_task.rb
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,16 @@ def self.refresh
end
end

def assets
return nil if asset_ids.nil?
@assets ||= self.asset_ids.map { |pid| ActiveFedora::Base.find(:pid => pid).first }
end

def assets=(as)
@assets = assets
self.asset_ids = as.map { |a| a.pid }
end

def status
ActiveSupport::StringInquirer.new(attributes['status'])
end
Expand Down Expand Up @@ -55,20 +65,21 @@ def enqueue
def ingest
raise 'Already ingested batch job.' if ingested?
begin
assets = send("ingest_#{type}")
self.assets = send("ingest_#{type}")
rescue OregonDigital::CsvBulkIngestible::CsvBatchError => e
build_errors(e)
raise e
end
self.asset_ids = assets.map { |a| a.pid }
clear_errors
self.status = 'ingested'
self.save
end

def delete_assets
return status if asset_ids.nil?
self.asset_ids.map { |pid| ActiveFedora::Base.find(:pid => pid).first.delete }
self.assets.each do |asset|
asset.delete
end
self.asset_ids = nil
self.status = 'deleted'
self.save
Expand Down Expand Up @@ -147,7 +158,7 @@ def build_errors(e)
end

def ingest_csv
assets = GenericAsset.ingest_from_csv(absolute_path)
GenericAsset.ingest_from_csv(absolute_path)
end

def ingest_bag
Expand Down
23 changes: 23 additions & 0 deletions spec/models/bulk_task_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,29 @@
expect(subject).to be_new
end
end

describe 'assets' do
before do
subject.assets = assets
end

it 'has assets' do
expect(subject.assets).to eq assets
end

it 'has asset ids' do
expect(subject.asset_ids).to eq pids
end

context 'when resetting assets' do
before do
subject.assets = [GenericAsset.new, GenericAsset.new].map { |asset| asset.save; asset }
end
it 'overrides old assets' do
expect(subject.assets).to eq assets
end
end
end

describe 'refresh' do
before do
Expand Down

0 comments on commit 0e08a02

Please sign in to comment.