collectionspace-client 0.2.0 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +1 -1
- data/examples/demo.rb +3 -5
- data/examples/update_password.rb +33 -0
- data/lib/collectionspace/client/helpers.rb +18 -21
- data/lib/collectionspace/client/version.rb +1 -1
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e63c182e9731f5868556d805eed65b8c85d32789363c90f4ac763cff06e2b693
|
4
|
+
data.tar.gz: 00d6e5804a0131adad73d28eee0dd32a95dd9b9a05346bf4e1374d54bfa1f2b5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fa76fc6c2b8f1761c01dc195198445eba31698d0d530d0993c5fa64ceb1ace2fbc44153a7d8c4dd29fe3d272463e1f82d3185f5a8d46ddfbec9252f0b8ec0ca5
|
7
|
+
data.tar.gz: b67294a65c42c52804af6e429f45e2ea9bcb1a5e4ea4d78fb3da0cfeafb8018221d835a29b81c48fea6e43b287b88e549e6bfd746f124a9814c1079fdae3abc7
|
data/README.md
CHANGED
data/examples/demo.rb
CHANGED
@@ -9,14 +9,12 @@ client = CollectionSpace::Client.new(
|
|
9
9
|
password: 'Administrator'
|
10
10
|
)
|
11
11
|
)
|
12
|
-
client.config.throttle = 1
|
13
12
|
|
14
13
|
# GET REQUEST FOR CONDITIONCHECK RECORDS AND PRINT THE PARSED RESPONSE AND XML
|
15
14
|
response = client.get('conditionchecks')
|
16
15
|
ap response.parsed if response.result.success?
|
17
16
|
|
18
|
-
# GET ALL
|
19
|
-
client.all('personauthorities').each do |item|
|
20
|
-
|
21
|
-
ap i.parsed
|
17
|
+
# GET ALL PERSON RECORDS AND PROCESS PER PAGE (INSTEAD OF WAITING FOR ALL)
|
18
|
+
client.all('personauthorities/urn:cspace:name(person)/items').each do |item|
|
19
|
+
puts item
|
22
20
|
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
$LOAD_PATH.unshift File.expand_path('../lib', __dir__)
|
4
|
+
require 'awesome_print'
|
5
|
+
require 'base64'
|
6
|
+
require 'collectionspace/client'
|
7
|
+
|
8
|
+
CS_CFG_URL = ENV.fetch('CS_CFG_URL', 'https://core.dev.collectionspace.org/cspace-services')
|
9
|
+
CS_CFG_USER = ENV.fetch('CS_CFG_USER', 'admin@core.collectionspace.org')
|
10
|
+
CS_CFG_PASS = ENV.fetch('CS_CFG_PASS', 'Administrator')
|
11
|
+
CS_UPD_USER = ENV.fetch('CS_UPD_USER', 'admin@core.collectionspace.org')
|
12
|
+
CS_UPD_PASS = Base64.encode64(ENV.fetch('CS_UPD_PASS', 'Administrator')).chomp
|
13
|
+
|
14
|
+
client = CollectionSpace::Client.new(
|
15
|
+
CollectionSpace::Configuration.new(
|
16
|
+
base_uri: CS_CFG_URL,
|
17
|
+
username: CS_CFG_USER,
|
18
|
+
password: CS_CFG_PASS
|
19
|
+
)
|
20
|
+
)
|
21
|
+
|
22
|
+
PAYLOAD = <<~XML
|
23
|
+
<ns2:accounts_common xmlns:ns2="http://collectionspace.org/services/account">
|
24
|
+
<userId>#{CS_UPD_USER}</userId>
|
25
|
+
<password>#{CS_UPD_PASS}</password>
|
26
|
+
</ns2:accounts_common>
|
27
|
+
XML
|
28
|
+
|
29
|
+
client.all('accounts').each do |item|
|
30
|
+
next unless item['email'] == CS_UPD_USER
|
31
|
+
|
32
|
+
ap client.put(item['uri'], PAYLOAD).parsed
|
33
|
+
end
|
@@ -4,37 +4,34 @@ module CollectionSpace
|
|
4
4
|
# get ALL records at path by paging through record set
|
5
5
|
def all(path, options = {})
|
6
6
|
list_type, list_item = get_list_types(path)
|
7
|
-
|
8
|
-
|
9
|
-
loop do
|
10
|
-
response = request('GET', path, options.merge(query: { pgNum: page }))
|
11
|
-
unless response.result.success?
|
12
|
-
raise CollectionSpace::RequestError, response.result.body
|
13
|
-
end
|
7
|
+
iterations = (count(path).to_f / config.page_size).ceil
|
8
|
+
return [] unless iterations.positive?
|
14
9
|
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
list_items = [list_items] if items == 1
|
20
|
-
list_items.each { |item| yielder << item }
|
21
|
-
page += 1
|
10
|
+
Enumerator::Lazy.new(0...iterations) do |yielder, i|
|
11
|
+
response = request('GET', path, options.merge(query: { pgNum: i }))
|
12
|
+
unless response.result.success?
|
13
|
+
raise CollectionSpace::RequestError, response.result.body
|
22
14
|
end
|
23
|
-
|
15
|
+
|
16
|
+
items_in_page = response.parsed[list_type].fetch('itemsInPage', 0).to_i
|
17
|
+
list_items = items_in_page.positive? ? response.parsed[list_type][list_item] : []
|
18
|
+
list_items = [list_items] if items_in_page == 1
|
19
|
+
|
20
|
+
yielder << list_items.shift until list_items.empty?
|
21
|
+
end
|
24
22
|
end
|
25
23
|
|
26
24
|
def count(path)
|
27
25
|
list_type, = get_list_types(path)
|
28
|
-
response = request('GET', path, query: { pgSz: 1 })
|
26
|
+
response = request('GET', path, query: { pgNum: 0, pgSz: 1 })
|
29
27
|
response.parsed[list_type]['totalItems'].to_i if response.result.success?
|
30
28
|
end
|
31
29
|
|
32
30
|
def get_list_types(path)
|
33
|
-
|
34
|
-
%w[
|
35
|
-
|
36
|
-
|
37
|
-
end
|
31
|
+
{
|
32
|
+
'accounts' => %w[accounts_common_list account_list_item],
|
33
|
+
'relations' => %w[relations_common_list relation_list_item],
|
34
|
+
}.fetch(path, %w[abstract_common_list list_item])
|
38
35
|
end
|
39
36
|
|
40
37
|
def prepare_query(query, options = {})
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: collectionspace-client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mark Cooper
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-05-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: httparty
|
@@ -170,6 +170,7 @@ files:
|
|
170
170
|
- examples/media_with_external_file.rb
|
171
171
|
- examples/purge_empty_vocabs.rb
|
172
172
|
- examples/search.rb
|
173
|
+
- examples/update_password.rb
|
173
174
|
- lib/collectionspace/client.rb
|
174
175
|
- lib/collectionspace/client/client.rb
|
175
176
|
- lib/collectionspace/client/configuration.rb
|
@@ -197,8 +198,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
197
198
|
- !ruby/object:Gem::Version
|
198
199
|
version: '0'
|
199
200
|
requirements: []
|
200
|
-
|
201
|
-
rubygems_version: 2.7.6
|
201
|
+
rubygems_version: 3.0.3
|
202
202
|
signing_key:
|
203
203
|
specification_version: 4
|
204
204
|
summary: CollectionSpace API client.
|