Class: DSpaceRest::Repositories::CollectionRepository

Inherits:
AbstractRepository show all
Defined in:
lib/dspacerest/repositories/collection_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_collection_for(community, collection) ⇒ Object



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

def create_collection_for(community, collection)
  form = JSON.generate(collection.to_h)
  response = rest_client["/communities/#{community.id}/collections"].post form
  DSpaceRest::Collection.new(JSON.parse(response))
end

#create_item_for(collection, item) ⇒ Object



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

def create_item_for(collection, item)
  form = JSON.generate({"metadata" => item.to_h["metadata"]})
  response = rest_client["/collections/#{collection.id}/items"].post form
  DSpaceRest::Item.new(JSON.parse(response))
end

#get_all_collections(expand = nil) ⇒ Object



33
34
35
36
37
38
39
40
41
# File 'lib/dspacerest/repositories/collection_repository.rb', line 33

def get_all_collections(expand = nil)
  expand_uri = build_expand_uri(expand)
  response = rest_client["/collections?#{expand_uri}"].get
  collections = []
  JSON.parse(response).each do |coll|
    collections << DSpaceRest::Collection.new(coll)
  end
  collections
end

#get_collection_by_id(id, expand = nil) ⇒ Object



27
28
29
30
31
# File 'lib/dspacerest/repositories/collection_repository.rb', line 27

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

#get_collection_items(collection) ⇒ Object

√ GET /communities/communityId/collections - Returns array of collections of community. √ GET /collections - Return all collections of DSpace in array. √ GET /collections/collectionId - Return collection with id. √ GET /collections/collectionId/items - Return all items of collection. √ POST /communities/communityId/collections - Create new collections in community. You must post Collection. √ POST /collections/collectionId/items - Create posted item in collection. You must post an Item POST /collections/find-collection - Find collection by passed name. PUT /collections/collectionId - Update collection. You must put Collection. DELETE /collections/collectionId - Delete collection from DSpace. DELETE /collections/collectionId/items/itemId - Delete item in collection. DELETE /communities/communityId/collections/collectionId - Delete collection in community.



18
19
20
21
22
23
24
25
# File 'lib/dspacerest/repositories/collection_repository.rb', line 18

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

#get_collections_of(community, expand = nil) ⇒ Object



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

def get_collections_of(community, expand = nil)
  expand_uri = build_expand_uri(expand)
  response = rest_client["/communities/#{community.id}/collections?#{expand_uri}"].get
  collections = []
  JSON.parse(response).each do |coll|
    collections << DSpaceRest::Collection.new(coll)
  end
  collections
end