Class: DSpaceRest::Repositories::ItemRepository

Inherits:
AbstractRepository show all
Defined in:
lib/dspacerest/repositories/item_repository.rb

Instance Attribute Summary

Attributes inherited from AbstractRepository

#rest_client

Instance Method Summary collapse

Methods inherited from AbstractRepository

#initialize

Constructor Details

This class inherits a constructor from DSpaceRest::Repositories::AbstractRepository

Instance Method Details

#create_bitstream_for(item, file, upload_strategy) ⇒ Object



59
60
61
62
# File 'lib/dspacerest/repositories/item_repository.rb', line 59

def create_bitstream_for(item, file, upload_strategy)
  response = upload_strategy.upload("/items/#{item.id}/bitstreams", file)
  DSpaceRest::Bitstream.new(JSON.parse(response))
end

#create_metadata_for(item) ⇒ Object



54
55
56
57
# File 'lib/dspacerest/repositories/item_repository.rb', line 54

def (item)
  form = JSON.generate(self.to_h["metadata"])
  response = rest_client["/items/#{item.id}/metadata"].put form
end

#delete(item) ⇒ Object



64
65
66
# File 'lib/dspacerest/repositories/item_repository.rb', line 64

def delete(item)
  response = rest_client["/items/#{item.id}"].delete
end

#get_all_items(expand = nil) ⇒ Object



19
20
21
22
23
24
25
26
27
# File 'lib/dspacerest/repositories/item_repository.rb', line 19

def get_all_items(expand = nil)
  expand_uri = build_expand_uri(expand)
  response = rest_client["/items?#{expand_uri}"].get
  items = []
  JSON.parse(response).each do |item|
    items << DSpaceRest::Item.new(item)
  end
  items
end

#get_bitstreams_of(item) ⇒ Object



44
45
46
47
48
49
50
51
# File 'lib/dspacerest/repositories/item_repository.rb', line 44

def get_bitstreams_of(item)
  response = rest_client["/items/#{item.id}/bitstreams"].get
  bitstreams = []
  JSON.parse(response).each do |bits|
    bitstreams << DSpaceRest::Bitstream.new(bits)
  end
  bitstreams
end

#get_item_by_id(id, expand = nil) ⇒ Object



29
30
31
32
33
# File 'lib/dspacerest/repositories/item_repository.rb', line 29

def get_item_by_id(id, expand = nil)
  expand_uri = build_expand_uri(expand)
  response = rest_client["/items/#{id}?#{expand_uri}"].get
  DSpaceRest::Item.new(JSON.parse(response))
end

#get_metadata_of(item) ⇒ Object



35
36
37
38
39
40
41
42
# File 'lib/dspacerest/repositories/item_repository.rb', line 35

def (item)
  response = rest_client["/items/#{item.id}/metadata"].get
   = []
  JSON.parse(response).each do |m|
     << DSpaceRest::Metadata.new(m)
  end
  
end