Skip to content

Commit 2b2f244

Browse files
authored
Merge pull request #207 from docusign/feature/add-http-info
Add http info output
2 parents 1d103e0 + 54799a3 commit 2b2f244

File tree

74 files changed

+6647
-5425
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

74 files changed

+6647
-5425
lines changed
Lines changed: 36 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,36 @@
1-
# frozen_string_literal: true
2-
3-
class AdminApi::Eg001CreateUserService
4-
attr_reader :args, :user_data
5-
6-
def initialize(args, user_data)
7-
@args = args
8-
@user_data = user_data
9-
end
10-
11-
def worker
12-
#ds-snippet-start:Admin1Step2
13-
configuration = DocuSign_Admin::Configuration.new
14-
configuration.host = Rails.configuration.admin_host
15-
16-
api_client = DocuSign_Admin::ApiClient.new(configuration)
17-
api_client.set_default_header('Authorization', "Bearer #{args[:access_token]}")
18-
#ds-snippet-end:Admin1Step2
19-
20-
#ds-snippet-start:Admin1Step6
21-
users_api = DocuSign_Admin::UsersApi.new(api_client)
22-
users_api.create_user(args[:organization_id], user_data)
23-
#ds-snippet-end:Admin1Step6
24-
end
25-
end
1+
# frozen_string_literal: true
2+
3+
class AdminApi::Eg001CreateUserService
4+
attr_reader :args, :user_data
5+
6+
def initialize(args, user_data)
7+
@args = args
8+
@user_data = user_data
9+
end
10+
11+
def worker
12+
#ds-snippet-start:Admin1Step2
13+
configuration = DocuSign_Admin::Configuration.new
14+
configuration.host = Rails.configuration.admin_host
15+
16+
api_client = DocuSign_Admin::ApiClient.new(configuration)
17+
api_client.set_default_header('Authorization', "Bearer #{args[:access_token]}")
18+
#ds-snippet-end:Admin1Step2
19+
20+
#ds-snippet-start:Admin1Step6
21+
users_api = DocuSign_Admin::UsersApi.new(api_client)
22+
results, _status, headers = users_api.create_user_with_http_info(args[:organization_id], user_data)
23+
24+
remaining = headers['X-RateLimit-Remaining']
25+
reset = headers['X-RateLimit-Reset']
26+
27+
if remaining && reset
28+
reset_date = Time.at(reset.to_i).utc
29+
puts "API calls remaining: #{remaining}"
30+
puts "Next Reset: #{reset_date}"
31+
end
32+
#ds-snippet-end:Admin1Step6
33+
34+
results
35+
end
36+
end
Lines changed: 62 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -1,51 +1,62 @@
1-
# frozen_string_literal: true
2-
3-
class AdminApi::Eg002CreateActiveClmEsignUserService
4-
attr_reader :args
5-
6-
def initialize(args)
7-
@args = args
8-
end
9-
10-
def worker
11-
configuration = DocuSign_Admin::Configuration.new
12-
configuration.host = Rails.configuration.admin_host
13-
14-
api_client = DocuSign_Admin::ApiClient.new(configuration)
15-
api_client.set_default_header('Authorization', "Bearer #{args[:access_token]}")
16-
17-
#ds-snippet-start:Admin2Step6
18-
users_api = DocuSign_Admin::UsersApi.new(api_client)
19-
users_api.add_or_update_user(args[:organization_id], args[:account_id], body(args))
20-
#ds-snippet-end:Admin2Step6
21-
end
22-
23-
private
24-
25-
#ds-snippet-start:Admin2Step5
26-
def body(args)
27-
{
28-
user_name: args[:user_name],
29-
first_name: args[:first_name],
30-
last_name: args[:last_name],
31-
email: args[:email],
32-
auto_activate_memberships: true,
33-
product_permission_profiles: [
34-
{
35-
permission_profile_id: args[:esign_permission_profile_id],
36-
product_id: args[:esign_product_id]
37-
},
38-
{
39-
permission_profile_id: args[:clm_permission_profile_id],
40-
product_id: args[:clm_product_id]
41-
}
42-
],
43-
ds_groups: [
44-
{
45-
ds_group_id: args[:ds_group_id]
46-
}
47-
]
48-
}
49-
end
50-
#ds-snippet-end:Admin2Step5
51-
end
1+
# frozen_string_literal: true
2+
3+
class AdminApi::Eg002CreateActiveClmEsignUserService
4+
attr_reader :args
5+
6+
def initialize(args)
7+
@args = args
8+
end
9+
10+
def worker
11+
configuration = DocuSign_Admin::Configuration.new
12+
configuration.host = Rails.configuration.admin_host
13+
14+
api_client = DocuSign_Admin::ApiClient.new(configuration)
15+
api_client.set_default_header('Authorization', "Bearer #{args[:access_token]}")
16+
17+
#ds-snippet-start:Admin2Step6
18+
users_api = DocuSign_Admin::UsersApi.new(api_client)
19+
results, _status, headers = users_api.add_or_update_user_with_http_info(args[:organization_id], args[:account_id], body(args))
20+
21+
remaining = headers['X-RateLimit-Remaining']
22+
reset = headers['X-RateLimit-Reset']
23+
24+
if remaining && reset
25+
reset_date = Time.at(reset.to_i).utc
26+
puts "API calls remaining: #{remaining}"
27+
puts "Next Reset: #{reset_date}"
28+
end
29+
#ds-snippet-end:Admin2Step6
30+
31+
results
32+
end
33+
34+
private
35+
36+
#ds-snippet-start:Admin2Step5
37+
def body(args)
38+
{
39+
user_name: args[:user_name],
40+
first_name: args[:first_name],
41+
last_name: args[:last_name],
42+
email: args[:email],
43+
auto_activate_memberships: true,
44+
product_permission_profiles: [
45+
{
46+
permission_profile_id: args[:esign_permission_profile_id],
47+
product_id: args[:esign_product_id]
48+
},
49+
{
50+
permission_profile_id: args[:clm_permission_profile_id],
51+
product_id: args[:clm_product_id]
52+
}
53+
],
54+
ds_groups: [
55+
{
56+
ds_group_id: args[:ds_group_id]
57+
}
58+
]
59+
}
60+
end
61+
#ds-snippet-end:Admin2Step5
62+
end
Lines changed: 91 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -1,63 +1,91 @@
1-
class AdminApi::Eg003BulkExportUserDataService
2-
attr_reader :bulk_exports_api, :args
3-
4-
def initialize(args)
5-
@args = args
6-
end
7-
8-
def worker
9-
#ds-snippet-start:Admin3Step2
10-
configuration = DocuSign_Admin::Configuration.new
11-
configuration.host = Rails.configuration.admin_host
12-
13-
api_client = DocuSign_Admin::ApiClient.new(configuration)
14-
api_client.set_default_header('Authorization', "Bearer #{args[:access_token]}")
15-
#ds-snippet-end:Admin3Step2
16-
17-
#ds-snippet-start:Admin3Step3
18-
@bulk_exports_api = DocuSign_Admin::BulkExportsApi.new(api_client)
19-
response = bulk_exports_api.create_user_list_export(args[:organization_id], args[:request_body])
20-
#ds-snippet-end:Admin3Step3
21-
22-
#ds-snippet-start:Admin3Step4
23-
retry_count = 5
24-
while retry_count >= 0
25-
if response.results
26-
get_exported_user_data(args, response.id)
27-
break
28-
else
29-
retry_count -= 1
30-
sleep(5)
31-
response = bulk_exports_api.get_user_list_export(args[:organization_id], response.id)
32-
end
33-
end
34-
#ds-snippet-end:Admin3Step4
35-
36-
response
37-
end
38-
39-
private
40-
41-
#ds-snippet-start:Admin3Step5
42-
def get_exported_user_data(args, export_id)
43-
bulk_export_response = bulk_exports_api.get_user_list_export(args[:organization_id], export_id)
44-
data_url = bulk_export_response.results[0].url
45-
46-
uri = URI(data_url)
47-
48-
req = Net::HTTP::Get.new(uri)
49-
req['Authorization'] = "Bearer #{args[:access_token]}"
50-
51-
http = Net::HTTP.new(uri.host, uri.port)
52-
http.use_ssl = true
53-
54-
http.request(req) do |response|
55-
File.open(args[:file_path], 'w') do |file|
56-
response.read_body do |chunk|
57-
file.write(chunk)
58-
end
59-
end
60-
end
61-
end
62-
#ds-snippet-end:Admin3Step5
63-
end
1+
class AdminApi::Eg003BulkExportUserDataService
2+
attr_reader :bulk_exports_api, :args
3+
4+
def initialize(args)
5+
@args = args
6+
end
7+
8+
def worker
9+
#ds-snippet-start:Admin3Step2
10+
configuration = DocuSign_Admin::Configuration.new
11+
configuration.host = Rails.configuration.admin_host
12+
13+
api_client = DocuSign_Admin::ApiClient.new(configuration)
14+
api_client.set_default_header('Authorization', "Bearer #{args[:access_token]}")
15+
#ds-snippet-end:Admin3Step2
16+
17+
#ds-snippet-start:Admin3Step3
18+
@bulk_exports_api = DocuSign_Admin::BulkExportsApi.new(api_client)
19+
response, _status, headers = bulk_exports_api.create_user_list_export_with_http_info(args[:organization_id], args[:request_body])
20+
21+
remaining = headers['X-RateLimit-Remaining']
22+
reset = headers['X-RateLimit-Reset']
23+
24+
if remaining && reset
25+
reset_date = Time.at(reset.to_i).utc
26+
puts "API calls remaining: #{remaining}"
27+
puts "Next Reset: #{reset_date}"
28+
end
29+
#ds-snippet-end:Admin3Step3
30+
31+
#ds-snippet-start:Admin3Step4
32+
retry_count = 5
33+
while retry_count >= 0
34+
if response.results
35+
get_exported_user_data(args, response.id)
36+
break
37+
else
38+
retry_count -= 1
39+
sleep(5)
40+
response, _status, headers = bulk_exports_api.get_user_list_export_with_http_info(args[:organization_id], response.id)
41+
42+
remaining = headers['X-RateLimit-Remaining']
43+
reset = headers['X-RateLimit-Reset']
44+
45+
if remaining && reset
46+
reset_date = Time.at(reset.to_i).utc
47+
puts "API calls remaining: #{remaining}"
48+
puts "Next Reset: #{reset_date}"
49+
end
50+
end
51+
end
52+
#ds-snippet-end:Admin3Step4
53+
54+
response
55+
end
56+
57+
private
58+
59+
#ds-snippet-start:Admin3Step5
60+
def get_exported_user_data(args, export_id)
61+
bulk_export_response, _status, headers = bulk_exports_api.get_user_list_export_with_http_info(args[:organization_id], export_id)
62+
63+
remaining = headers['X-RateLimit-Remaining']
64+
reset = headers['X-RateLimit-Reset']
65+
66+
if remaining && reset
67+
reset_date = Time.at(reset.to_i).utc
68+
puts "API calls remaining: #{remaining}"
69+
puts "Next Reset: #{reset_date}"
70+
end
71+
72+
data_url = bulk_export_response.results[0].url
73+
74+
uri = URI(data_url)
75+
76+
req = Net::HTTP::Get.new(uri)
77+
req['Authorization'] = "Bearer #{args[:access_token]}"
78+
79+
http = Net::HTTP.new(uri.host, uri.port)
80+
http.use_ssl = true
81+
82+
http.request(req) do |response|
83+
File.open(args[:file_path], 'w') do |file|
84+
response.read_body do |chunk|
85+
file.write(chunk)
86+
end
87+
end
88+
end
89+
end
90+
#ds-snippet-end:Admin3Step5
91+
end
Lines changed: 36 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,36 @@
1-
class AdminApi::Eg004ImportUserService
2-
attr_reader :args
3-
4-
def initialize(args)
5-
@args = args
6-
end
7-
8-
def worker
9-
#ds-snippet-start:Admin4Step2
10-
configuration = DocuSign_Admin::Configuration.new
11-
configuration.host = Rails.configuration.admin_host
12-
13-
api_client = DocuSign_Admin::ApiClient.new(configuration)
14-
api_client.set_default_header('Authorization', "Bearer #{args[:access_token]}")
15-
#ds-snippet-end:Admin4Step2
16-
17-
#ds-snippet-start:Admin4Step3
18-
csv_file_data = File.open(args[:csv_file_path]).read
19-
csv_file_data = csv_file_data.gsub('{account_id}', args[:account_id])
20-
21-
@bulk_imports_api = DocuSign_Admin::BulkImportsApi.new(api_client)
22-
@bulk_imports_api.create_bulk_import_add_users_request(args[:organization_id], csv_file_data)
23-
#ds-snippet-end:Admin4Step3
24-
end
25-
end
1+
class AdminApi::Eg004ImportUserService
2+
attr_reader :args
3+
4+
def initialize(args)
5+
@args = args
6+
end
7+
8+
def worker
9+
#ds-snippet-start:Admin4Step2
10+
configuration = DocuSign_Admin::Configuration.new
11+
configuration.host = Rails.configuration.admin_host
12+
13+
api_client = DocuSign_Admin::ApiClient.new(configuration)
14+
api_client.set_default_header('Authorization', "Bearer #{args[:access_token]}")
15+
#ds-snippet-end:Admin4Step2
16+
17+
#ds-snippet-start:Admin4Step3
18+
csv_file_data = File.open(args[:csv_file_path]).read
19+
csv_file_data = csv_file_data.gsub('{account_id}', args[:account_id])
20+
21+
@bulk_imports_api = DocuSign_Admin::BulkImportsApi.new(api_client)
22+
results, _status, headers = @bulk_imports_api.create_bulk_import_add_users_request_with_http_info(args[:organization_id], csv_file_data)
23+
24+
remaining = headers['X-RateLimit-Remaining']
25+
reset = headers['X-RateLimit-Reset']
26+
27+
if remaining && reset
28+
reset_date = Time.at(reset.to_i).utc
29+
puts "API calls remaining: #{remaining}"
30+
puts "Next Reset: #{reset_date}"
31+
end
32+
#ds-snippet-end:Admin4Step3
33+
34+
results
35+
end
36+
end

0 commit comments

Comments
 (0)