dspace_rest_client 1.1.2 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/dspace_client.rb +64 -64
- data/lib/dspace_rest_client.rb +17 -17
- data/lib/dspacerest/bitstream.rb +51 -51
- data/lib/dspacerest/builders/hash_builder.rb +18 -16
- data/lib/dspacerest/builders/model_builder.rb +61 -61
- data/lib/dspacerest/collection.rb +60 -60
- data/lib/dspacerest/community.rb +57 -57
- data/lib/dspacerest/item.rb +70 -71
- data/lib/dspacerest/metadata.rb +17 -17
- data/lib/dspacerest/policy.rb +41 -41
- data/lib/dspacerest/repositories/abstract_repository.rb +37 -20
- data/lib/dspacerest/repositories/bitstream_repository.rb +62 -58
- data/lib/dspacerest/repositories/collection_repository.rb +78 -73
- data/lib/dspacerest/repositories/community_repository.rb +76 -72
- data/lib/dspacerest/repositories/dspace_repository.rb +26 -26
- data/lib/dspacerest/repositories/item_repository.rb +80 -76
- data/lib/dspacerest/strategies/uploads/curl_strategy.rb +26 -26
- data/lib/dspacerest/strategies/uploads/rest_strategy.rb +16 -16
- metadata +4 -4
@@ -1,73 +1,78 @@
|
|
1
|
-
module DSpaceRest
|
2
|
-
module Repositories
|
3
|
-
class CollectionRepository < AbstractRepository
|
4
|
-
# Collections in DSpace are containers of Items
|
5
|
-
|
6
|
-
# √ GET /communities/{communityId}/collections - Returns array of collections of community.
|
7
|
-
# √ GET /collections - Return all collections of DSpace in array.
|
8
|
-
# √ GET /collections/{collectionId} - Return collection with id.
|
9
|
-
# √ GET /collections/{collectionId}/items - Return all items of collection.
|
10
|
-
# √ POST /communities/{communityId}/collections - Create new collections in community. You must post Collection.
|
11
|
-
# √ POST /collections/{collectionId}/items - Create posted item in collection. You must post an Item
|
12
|
-
# POST /collections/find-collection - Find collection by passed name.
|
13
|
-
# PUT /collections/{collectionId} - Update collection. You must put Collection.
|
14
|
-
# DELETE /collections/{collectionId} - Delete collection from DSpace.
|
15
|
-
# DELETE /collections/{collectionId}/items/{itemId} - Delete item in collection.
|
16
|
-
# DELETE /communities/{communityId}/collections/{collectionId} - Delete collection in community.
|
17
|
-
|
18
|
-
def get_collection_items(collection)
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
1
|
+
module DSpaceRest
|
2
|
+
module Repositories
|
3
|
+
class CollectionRepository < AbstractRepository
|
4
|
+
# Collections in DSpace are containers of Items
|
5
|
+
|
6
|
+
# √ GET /communities/{communityId}/collections - Returns array of collections of community.
|
7
|
+
# √ GET /collections - Return all collections of DSpace in array.
|
8
|
+
# √ GET /collections/{collectionId} - Return collection with id.
|
9
|
+
# √ GET /collections/{collectionId}/items - Return all items of collection.
|
10
|
+
# √ POST /communities/{communityId}/collections - Create new collections in community. You must post Collection.
|
11
|
+
# √ POST /collections/{collectionId}/items - Create posted item in collection. You must post an Item
|
12
|
+
# POST /collections/find-collection - Find collection by passed name.
|
13
|
+
# PUT /collections/{collectionId} - Update collection. You must put Collection.
|
14
|
+
# DELETE /collections/{collectionId} - Delete collection from DSpace.
|
15
|
+
# DELETE /collections/{collectionId}/items/{itemId} - Delete item in collection.
|
16
|
+
# DELETE /communities/{communityId}/collections/{collectionId} - Delete collection in community.
|
17
|
+
|
18
|
+
def get_collection_items(collection, params)
|
19
|
+
query_string = build_query_string(params)
|
20
|
+
response = rest_client["/collections/#{collection.id}/items?#{query_string}"].get
|
21
|
+
items = []
|
22
|
+
JSON.parse(response).each do |item|
|
23
|
+
items << DSpaceRest::Item.new(item)
|
24
|
+
end
|
25
|
+
items
|
26
|
+
end
|
27
|
+
|
28
|
+
def get_collection_by_id(id, params)
|
29
|
+
query_string = build_query_string(params)
|
30
|
+
response = rest_client["/collections/#{id}?#{query_string}"].get
|
31
|
+
DSpaceRest::Collection.new(JSON.parse(response))
|
32
|
+
end
|
33
|
+
|
34
|
+
def get_all_collections(params)
|
35
|
+
query_string = build_query_string(params)
|
36
|
+
response = rest_client["/collections?#{query_string}"].get
|
37
|
+
collections = []
|
38
|
+
JSON.parse(response).each do |coll|
|
39
|
+
collections << DSpaceRest::Collection.new(coll)
|
40
|
+
end
|
41
|
+
collections
|
42
|
+
end
|
43
|
+
|
44
|
+
def get_collections_of(community, params)
|
45
|
+
query_string = build_query_string(params)
|
46
|
+
response = rest_client["/communities/#{community.id}/collections?#{query_string}"].get
|
47
|
+
collections = []
|
48
|
+
JSON.parse(response).each do |coll|
|
49
|
+
collections << DSpaceRest::Collection.new(coll)
|
50
|
+
end
|
51
|
+
collections
|
52
|
+
end
|
53
|
+
|
54
|
+
def create_collection_for(community, collection)
|
55
|
+
form = JSON.generate(collection.to_h)
|
56
|
+
response = rest_client["/communities/#{community.id}/collections"].post form
|
57
|
+
DSpaceRest::Collection.new(JSON.parse(response))
|
58
|
+
end
|
59
|
+
|
60
|
+
def create_item_for(collection, item)
|
61
|
+
form = JSON.generate({"metadata" => item.to_h[:metadata]})
|
62
|
+
response = rest_client["/collections/#{collection.id}/items"].post form
|
63
|
+
DSpaceRest::Item.new(JSON.parse(response))
|
64
|
+
end
|
65
|
+
|
66
|
+
private
|
67
|
+
|
68
|
+
def expandable_properties
|
69
|
+
["parentCommunityList","parentCommunity","items","license","logo","all"]
|
70
|
+
end
|
71
|
+
|
72
|
+
def query_parameters
|
73
|
+
["limit","offset"]
|
74
|
+
end
|
75
|
+
|
76
|
+
end
|
77
|
+
end
|
78
|
+
end
|
@@ -1,72 +1,76 @@
|
|
1
|
-
module DSpaceRest
|
2
|
-
module Repositories
|
3
|
-
class CommunityRepository < AbstractRepository
|
4
|
-
# Communities in DSpace are used for organization and hierarchy, and are containers that hold sub-Communities and Collections.
|
5
|
-
|
6
|
-
# √ GET /communities - Returns array of all communities in DSpace.
|
7
|
-
# √ GET /communities/top-communities - Returns array of all top communities in DSpace
|
8
|
-
# √ GET /communities/{communityId} - Returns community
|
9
|
-
# √ GET /communities/{communityId}/communities - Returns array of subcommunities of community.
|
10
|
-
# √ POST /communities - Create new community at top level. You must post community.
|
11
|
-
# √ POST /communities/{communityId}/communities - Create new subcommunity in community. You must post Community.
|
12
|
-
# PUT /communities/{communityId} - Update community. You must put Community
|
13
|
-
# DELETE /communities/{communityId} - Delete community.
|
14
|
-
# DELETE /communities/{communityId}/communities/{communityId2} - Delete subcommunity in community.
|
15
|
-
|
16
|
-
def get_community_by_id(id,
|
17
|
-
|
18
|
-
response = rest_client["/communities/#{id}?#{
|
19
|
-
DSpaceRest::Community.new(JSON.parse(response))
|
20
|
-
end
|
21
|
-
|
22
|
-
def get_all_communities(
|
23
|
-
|
24
|
-
response = rest_client["/communities?#{
|
25
|
-
communities = []
|
26
|
-
JSON.parse(response).each do |comm|
|
27
|
-
communities << DSpaceRest::Community.new(comm)
|
28
|
-
end
|
29
|
-
communities
|
30
|
-
end
|
31
|
-
|
32
|
-
def get_top_communities(
|
33
|
-
|
34
|
-
response = rest_client["/communities/top-communities?#{
|
35
|
-
communities = []
|
36
|
-
JSON.parse(response).each do |comm|
|
37
|
-
communities << DSpaceRest::Community.new(comm)
|
38
|
-
end
|
39
|
-
communities
|
40
|
-
end
|
41
|
-
|
42
|
-
def get_subcommunities_of(community,
|
43
|
-
|
44
|
-
response = rest_client["/communities/#{community.id}/communities?#{
|
45
|
-
communities = []
|
46
|
-
JSON.parse(response).each do |comm|
|
47
|
-
communities << DSpaceRest::Community.new(comm)
|
48
|
-
end
|
49
|
-
communities
|
50
|
-
end
|
51
|
-
|
52
|
-
def create_community(community)
|
53
|
-
form = JSON.generate(community.to_h)
|
54
|
-
response = rest_client["/communities"].post form
|
55
|
-
end
|
56
|
-
|
57
|
-
def create_subcommunity_of(community, subcommunity)
|
58
|
-
form = JSON.generate(subcommunity.to_h)
|
59
|
-
response = rest_client["/communities/#{community.id}/communities"].post form
|
60
|
-
|
61
|
-
DSpaceRest::Community.new(JSON.parse(response))
|
62
|
-
end
|
63
|
-
|
64
|
-
private
|
65
|
-
|
66
|
-
def expandable_properties
|
67
|
-
["parentCommunity","collections","subCommunities","logo","all"]
|
68
|
-
end
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
end
|
1
|
+
module DSpaceRest
|
2
|
+
module Repositories
|
3
|
+
class CommunityRepository < AbstractRepository
|
4
|
+
# Communities in DSpace are used for organization and hierarchy, and are containers that hold sub-Communities and Collections.
|
5
|
+
|
6
|
+
# √ GET /communities - Returns array of all communities in DSpace.
|
7
|
+
# √ GET /communities/top-communities - Returns array of all top communities in DSpace
|
8
|
+
# √ GET /communities/{communityId} - Returns community
|
9
|
+
# √ GET /communities/{communityId}/communities - Returns array of subcommunities of community.
|
10
|
+
# √ POST /communities - Create new community at top level. You must post community.
|
11
|
+
# √ POST /communities/{communityId}/communities - Create new subcommunity in community. You must post Community.
|
12
|
+
# PUT /communities/{communityId} - Update community. You must put Community
|
13
|
+
# DELETE /communities/{communityId} - Delete community.
|
14
|
+
# DELETE /communities/{communityId}/communities/{communityId2} - Delete subcommunity in community.
|
15
|
+
|
16
|
+
def get_community_by_id(id, params)
|
17
|
+
query_string = build_query_string(params)
|
18
|
+
response = rest_client["/communities/#{id}?#{query_string}"].get
|
19
|
+
DSpaceRest::Community.new(JSON.parse(response))
|
20
|
+
end
|
21
|
+
|
22
|
+
def get_all_communities(params)
|
23
|
+
query_string = build_query_string(params)
|
24
|
+
response = rest_client["/communities?#{query_string}"].get
|
25
|
+
communities = []
|
26
|
+
JSON.parse(response).each do |comm|
|
27
|
+
communities << DSpaceRest::Community.new(comm)
|
28
|
+
end
|
29
|
+
communities
|
30
|
+
end
|
31
|
+
|
32
|
+
def get_top_communities(params)
|
33
|
+
query_string = build_query_string(params)
|
34
|
+
response = rest_client["/communities/top-communities?#{query_string}"].get
|
35
|
+
communities = []
|
36
|
+
JSON.parse(response).each do |comm|
|
37
|
+
communities << DSpaceRest::Community.new(comm)
|
38
|
+
end
|
39
|
+
communities
|
40
|
+
end
|
41
|
+
|
42
|
+
def get_subcommunities_of(community, params)
|
43
|
+
query_string = build_query_string(params)
|
44
|
+
response = rest_client["/communities/#{community.id}/communities?#{query_string}"].get
|
45
|
+
communities = []
|
46
|
+
JSON.parse(response).each do |comm|
|
47
|
+
communities << DSpaceRest::Community.new(comm)
|
48
|
+
end
|
49
|
+
communities
|
50
|
+
end
|
51
|
+
|
52
|
+
def create_community(community)
|
53
|
+
form = JSON.generate(community.to_h)
|
54
|
+
response = rest_client["/communities"].post form
|
55
|
+
end
|
56
|
+
|
57
|
+
def create_subcommunity_of(community, subcommunity)
|
58
|
+
form = JSON.generate(subcommunity.to_h)
|
59
|
+
response = rest_client["/communities/#{community.id}/communities"].post form
|
60
|
+
|
61
|
+
DSpaceRest::Community.new(JSON.parse(response))
|
62
|
+
end
|
63
|
+
|
64
|
+
private
|
65
|
+
|
66
|
+
def expandable_properties
|
67
|
+
["parentCommunity","collections","subCommunities","logo","all"]
|
68
|
+
end
|
69
|
+
|
70
|
+
def query_parameters
|
71
|
+
["limit","offset"]
|
72
|
+
end
|
73
|
+
|
74
|
+
end
|
75
|
+
end
|
76
|
+
end
|
@@ -1,27 +1,27 @@
|
|
1
|
-
module DSpaceRest
|
2
|
-
module Repositories
|
3
|
-
class DspaceRepository < AbstractRepository
|
4
|
-
|
5
|
-
def bitstream_repository
|
6
|
-
BitstreamRepository.new rest_client
|
7
|
-
end
|
8
|
-
|
9
|
-
def collection_repository
|
10
|
-
CollectionRepository.new rest_client
|
11
|
-
end
|
12
|
-
|
13
|
-
def community_repository
|
14
|
-
CommunityRepository.new rest_client
|
15
|
-
end
|
16
|
-
|
17
|
-
def item_repository
|
18
|
-
ItemRepository.new rest_client
|
19
|
-
end
|
20
|
-
|
21
|
-
def metadata_repository
|
22
|
-
MetadataRepository.new rest_client
|
23
|
-
end
|
24
|
-
|
25
|
-
end
|
26
|
-
end
|
1
|
+
module DSpaceRest
|
2
|
+
module Repositories
|
3
|
+
class DspaceRepository < AbstractRepository
|
4
|
+
|
5
|
+
def bitstream_repository
|
6
|
+
BitstreamRepository.new rest_client
|
7
|
+
end
|
8
|
+
|
9
|
+
def collection_repository
|
10
|
+
CollectionRepository.new rest_client
|
11
|
+
end
|
12
|
+
|
13
|
+
def community_repository
|
14
|
+
CommunityRepository.new rest_client
|
15
|
+
end
|
16
|
+
|
17
|
+
def item_repository
|
18
|
+
ItemRepository.new rest_client
|
19
|
+
end
|
20
|
+
|
21
|
+
def metadata_repository
|
22
|
+
MetadataRepository.new rest_client
|
23
|
+
end
|
24
|
+
|
25
|
+
end
|
26
|
+
end
|
27
27
|
end
|
@@ -1,76 +1,80 @@
|
|
1
|
-
module DSpaceRest
|
2
|
-
module Repositories
|
3
|
-
class ItemRepository < AbstractRepository
|
4
|
-
# Items in DSpace represent a "work" and combine metadata and files, known as Bitstreams
|
5
|
-
|
6
|
-
# √ GET /items - Return list of items.
|
7
|
-
# √ GET /items/{item id} - Return item.
|
8
|
-
# √ GET /items/{item id}/metadata - Return item metadata.
|
9
|
-
# √ GET /items/{item id}/bitstreams - Return item bitstreams.
|
10
|
-
# POST /items/find-by-metadata-field - Find items by metadata entry. You must post a MetadataEntry. DS-2501 - wrong SQL in REST /items/find-by-metadata-field CLOSED
|
11
|
-
# √ POST /items/{item id}/metadata - Add metadata to item. You must post an array of MetadataEntry
|
12
|
-
# √ POST /items/{item id}/bitstreams - Add bitstream to item. You must post a Bitstream
|
13
|
-
# √ PUT /items/{item id}/metadata - Update metadata in item. You must put a MetadataEntry
|
14
|
-
# √ DELETE /items/{item id} - Delete item.
|
15
|
-
# DELETE /items/{item id}/metadata - Clear item metadata.
|
16
|
-
# DELETE /items/{item id}/bitstreams/{bitstream id} - Delete item bitstream.
|
17
|
-
|
18
|
-
|
19
|
-
def get_all_items(
|
20
|
-
|
21
|
-
response = rest_client["/items?#{
|
22
|
-
items = []
|
23
|
-
JSON.parse(response).each do |item|
|
24
|
-
items << DSpaceRest::Item.new(item)
|
25
|
-
end
|
26
|
-
items
|
27
|
-
end
|
28
|
-
|
29
|
-
def get_item_by_id(id,
|
30
|
-
|
31
|
-
response = rest_client["/items/#{id}?#{
|
32
|
-
DSpaceRest::Item.new(JSON.parse(response))
|
33
|
-
end
|
34
|
-
|
35
|
-
def get_metadata_of(item)
|
36
|
-
response = rest_client["/items/#{item.id}/metadata"].get
|
37
|
-
metadata = []
|
38
|
-
JSON.parse(response).each do |m|
|
39
|
-
metadata << DSpaceRest::Metadata.new(m)
|
40
|
-
end
|
41
|
-
metadata
|
42
|
-
end
|
43
|
-
|
44
|
-
def get_bitstreams_of(item)
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
def create_metadata_for(item)
|
55
|
-
form = JSON.generate(self.to_h["metadata"])
|
56
|
-
response = rest_client["/items/#{item.id}/metadata"].put form
|
57
|
-
end
|
58
|
-
|
59
|
-
def create_bitstream_for(item, file, upload_strategy)
|
60
|
-
response = upload_strategy.upload("/items/#{item.id}/bitstreams", file)
|
61
|
-
DSpaceRest::Bitstream.new(JSON.parse(response))
|
62
|
-
end
|
63
|
-
|
64
|
-
def delete(item)
|
65
|
-
response = rest_client["/items/#{item.id}"].delete
|
66
|
-
end
|
67
|
-
|
68
|
-
private
|
69
|
-
|
70
|
-
def expandable_properties
|
71
|
-
["metadata","parentCollection","parentCollectionList","parentCommunityList","bitstreams","all"]
|
72
|
-
end
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
end
|
1
|
+
module DSpaceRest
|
2
|
+
module Repositories
|
3
|
+
class ItemRepository < AbstractRepository
|
4
|
+
# Items in DSpace represent a "work" and combine metadata and files, known as Bitstreams
|
5
|
+
|
6
|
+
# √ GET /items - Return list of items.
|
7
|
+
# √ GET /items/{item id} - Return item.
|
8
|
+
# √ GET /items/{item id}/metadata - Return item metadata.
|
9
|
+
# √ GET /items/{item id}/bitstreams - Return item bitstreams.
|
10
|
+
# POST /items/find-by-metadata-field - Find items by metadata entry. You must post a MetadataEntry. DS-2501 - wrong SQL in REST /items/find-by-metadata-field CLOSED
|
11
|
+
# √ POST /items/{item id}/metadata - Add metadata to item. You must post an array of MetadataEntry
|
12
|
+
# √ POST /items/{item id}/bitstreams - Add bitstream to item. You must post a Bitstream
|
13
|
+
# √ PUT /items/{item id}/metadata - Update metadata in item. You must put a MetadataEntry
|
14
|
+
# √ DELETE /items/{item id} - Delete item.
|
15
|
+
# DELETE /items/{item id}/metadata - Clear item metadata.
|
16
|
+
# DELETE /items/{item id}/bitstreams/{bitstream id} - Delete item bitstream.
|
17
|
+
|
18
|
+
|
19
|
+
def get_all_items(params)
|
20
|
+
query_string = build_query_string(params)
|
21
|
+
response = rest_client["/items?#{query_string}"].get
|
22
|
+
items = []
|
23
|
+
JSON.parse(response).each do |item|
|
24
|
+
items << DSpaceRest::Item.new(item)
|
25
|
+
end
|
26
|
+
items
|
27
|
+
end
|
28
|
+
|
29
|
+
def get_item_by_id(id, params)
|
30
|
+
query_string = build_query_string(params)
|
31
|
+
response = rest_client["/items/#{id}?#{query_string}"].get
|
32
|
+
DSpaceRest::Item.new(JSON.parse(response))
|
33
|
+
end
|
34
|
+
|
35
|
+
def get_metadata_of(item)
|
36
|
+
response = rest_client["/items/#{item.id}/metadata"].get
|
37
|
+
metadata = []
|
38
|
+
JSON.parse(response).each do |m|
|
39
|
+
metadata << DSpaceRest::Metadata.new(m)
|
40
|
+
end
|
41
|
+
metadata
|
42
|
+
end
|
43
|
+
|
44
|
+
def get_bitstreams_of(item, params)
|
45
|
+
query_string = build_query_string(params)
|
46
|
+
response = rest_client["/items/#{item.id}/bitstreams?#{query_string}"].get
|
47
|
+
bitstreams = []
|
48
|
+
JSON.parse(response).each do |bits|
|
49
|
+
bitstreams << DSpaceRest::Bitstream.new(bits)
|
50
|
+
end
|
51
|
+
bitstreams
|
52
|
+
end
|
53
|
+
|
54
|
+
def create_metadata_for(item)
|
55
|
+
form = JSON.generate(self.to_h["metadata"])
|
56
|
+
response = rest_client["/items/#{item.id}/metadata"].put form
|
57
|
+
end
|
58
|
+
|
59
|
+
def create_bitstream_for(item, file, upload_strategy)
|
60
|
+
response = upload_strategy.upload("/items/#{item.id}/bitstreams?name=#{file.name}&description=#{file.description}", file.path)
|
61
|
+
DSpaceRest::Bitstream.new(JSON.parse(response))
|
62
|
+
end
|
63
|
+
|
64
|
+
def delete(item)
|
65
|
+
response = rest_client["/items/#{item.id}"].delete
|
66
|
+
end
|
67
|
+
|
68
|
+
private
|
69
|
+
|
70
|
+
def expandable_properties
|
71
|
+
["metadata","parentCollection","parentCollectionList","parentCommunityList","bitstreams","all"]
|
72
|
+
end
|
73
|
+
|
74
|
+
def query_parameters
|
75
|
+
["limit","offset"]
|
76
|
+
end
|
77
|
+
|
78
|
+
end
|
79
|
+
end
|
80
|
+
end
|
@@ -1,27 +1,27 @@
|
|
1
|
-
#require 'curl'
|
2
|
-
|
3
|
-
module DSpaceRest
|
4
|
-
module Strategies
|
5
|
-
module Uploads
|
6
|
-
class CurlStrategy
|
7
|
-
|
8
|
-
def initialize(host_url, token)
|
9
|
-
@host_url = host_url
|
10
|
-
@token = token
|
11
|
-
end
|
12
|
-
|
13
|
-
def upload(endpoint, file)
|
14
|
-
c = Curl::Easy.new(@host_url.concat(endpoint))
|
15
|
-
c.headers['Accept'] = 'application/json'
|
16
|
-
c.headers['rest-dspace-token'] = @token
|
17
|
-
|
18
|
-
c.multipart_form_post = true
|
19
|
-
c.ssl_verify_peer = false
|
20
|
-
c.http_post(Curl::PostField.file('file', file))
|
21
|
-
|
22
|
-
c.body_str
|
23
|
-
end
|
24
|
-
end
|
25
|
-
end
|
26
|
-
end
|
1
|
+
#require 'curl'
|
2
|
+
|
3
|
+
module DSpaceRest
|
4
|
+
module Strategies
|
5
|
+
module Uploads
|
6
|
+
class CurlStrategy
|
7
|
+
|
8
|
+
def initialize(host_url, token)
|
9
|
+
@host_url = host_url
|
10
|
+
@token = token
|
11
|
+
end
|
12
|
+
|
13
|
+
def upload(endpoint, file)
|
14
|
+
c = Curl::Easy.new(@host_url.concat(endpoint))
|
15
|
+
c.headers['Accept'] = 'application/json'
|
16
|
+
c.headers['rest-dspace-token'] = @token
|
17
|
+
|
18
|
+
c.multipart_form_post = true
|
19
|
+
c.ssl_verify_peer = false
|
20
|
+
c.http_post(Curl::PostField.file('file', file))
|
21
|
+
|
22
|
+
c.body_str
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
27
|
end
|
@@ -1,17 +1,17 @@
|
|
1
|
-
module DSpaceRest
|
2
|
-
module Strategies
|
3
|
-
module Uploads
|
4
|
-
class RestStrategy
|
5
|
-
|
6
|
-
def initialize(rest_client)
|
7
|
-
@rest_client = rest_client
|
8
|
-
end
|
9
|
-
|
10
|
-
def upload(endpoint, file)
|
11
|
-
@rest_client[endpoint].post File.read(file)
|
12
|
-
end
|
13
|
-
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end
|
1
|
+
module DSpaceRest
|
2
|
+
module Strategies
|
3
|
+
module Uploads
|
4
|
+
class RestStrategy
|
5
|
+
|
6
|
+
def initialize(rest_client)
|
7
|
+
@rest_client = rest_client
|
8
|
+
end
|
9
|
+
|
10
|
+
def upload(endpoint, file)
|
11
|
+
@rest_client[endpoint].post File.read(file)
|
12
|
+
end
|
13
|
+
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
17
|
end
|
metadata
CHANGED
@@ -1,16 +1,16 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dspace_rest_client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mauricio Giacomini Girardello
|
8
|
-
- Bruno
|
8
|
+
- Bruno Nocera Zanette
|
9
9
|
- Mateus Rambo Strey
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2015-
|
13
|
+
date: 2015-11-22 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: rest-client
|
@@ -91,7 +91,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
91
91
|
version: '0'
|
92
92
|
requirements: []
|
93
93
|
rubyforge_project:
|
94
|
-
rubygems_version: 2.4.
|
94
|
+
rubygems_version: 2.4.5.1
|
95
95
|
signing_key:
|
96
96
|
specification_version: 4
|
97
97
|
summary: DSpace REST-API Client for Ruby!
|