smartsheet 2.77.0 → 2.77.2

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.
Files changed (72) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +12 -12
  3. data/.rubocop.yml +4 -4
  4. data/.travis.yml +26 -15
  5. data/.yardopts +3 -3
  6. data/ADVANCED.md +78 -78
  7. data/CHANGELOG.md +115 -112
  8. data/Gemfile +6 -6
  9. data/LICENSE +202 -202
  10. data/README.md +246 -246
  11. data/Rakefile +29 -29
  12. data/bin/console +14 -14
  13. data/bin/setup +8 -8
  14. data/lib/smartsheet.rb +2 -2
  15. data/lib/smartsheet/api/body_builder.rb +25 -25
  16. data/lib/smartsheet/api/endpoint_spec.rb +54 -54
  17. data/lib/smartsheet/api/faraday_adapter/faraday_net_client.rb +45 -45
  18. data/lib/smartsheet/api/faraday_adapter/faraday_response.rb +70 -70
  19. data/lib/smartsheet/api/faraday_adapter/middleware/faraday_error_translator.rb +20 -20
  20. data/lib/smartsheet/api/faraday_adapter/middleware/response_parser.rb +25 -25
  21. data/lib/smartsheet/api/file_spec.rb +55 -55
  22. data/lib/smartsheet/api/header_builder.rb +96 -96
  23. data/lib/smartsheet/api/request.rb +42 -42
  24. data/lib/smartsheet/api/request_client.rb +43 -43
  25. data/lib/smartsheet/api/request_logger.rb +182 -182
  26. data/lib/smartsheet/api/request_spec.rb +57 -57
  27. data/lib/smartsheet/api/response_net_client_decorator.rb +54 -54
  28. data/lib/smartsheet/api/retry_logic.rb +40 -40
  29. data/lib/smartsheet/api/retry_net_client_decorator.rb +37 -37
  30. data/lib/smartsheet/api/url_builder.rb +25 -25
  31. data/lib/smartsheet/client.rb +193 -193
  32. data/lib/smartsheet/constants.rb +18 -18
  33. data/lib/smartsheet/endpoints/contacts/contacts.rb +30 -30
  34. data/lib/smartsheet/endpoints/events/events.rb +20 -20
  35. data/lib/smartsheet/endpoints/favorites/favorites.rb +159 -159
  36. data/lib/smartsheet/endpoints/folders/folders.rb +125 -125
  37. data/lib/smartsheet/endpoints/groups/groups.rb +83 -83
  38. data/lib/smartsheet/endpoints/home/home.rb +20 -20
  39. data/lib/smartsheet/endpoints/reports/reports.rb +100 -100
  40. data/lib/smartsheet/endpoints/reports/reports_share.rb +69 -69
  41. data/lib/smartsheet/endpoints/search/search.rb +30 -30
  42. data/lib/smartsheet/endpoints/server_info/server_info.rb +21 -21
  43. data/lib/smartsheet/endpoints/share/share.rb +58 -58
  44. data/lib/smartsheet/endpoints/sheets/automation_rules.rb +55 -55
  45. data/lib/smartsheet/endpoints/sheets/cells.rb +82 -82
  46. data/lib/smartsheet/endpoints/sheets/columns.rb +66 -66
  47. data/lib/smartsheet/endpoints/sheets/comments.rb +64 -64
  48. data/lib/smartsheet/endpoints/sheets/comments_attachments.rb +78 -78
  49. data/lib/smartsheet/endpoints/sheets/cross_sheet_references.rb +45 -45
  50. data/lib/smartsheet/endpoints/sheets/discussions.rb +84 -84
  51. data/lib/smartsheet/endpoints/sheets/discussions_attachments.rb +22 -22
  52. data/lib/smartsheet/endpoints/sheets/rows.rb +106 -106
  53. data/lib/smartsheet/endpoints/sheets/rows_attachments.rb +92 -92
  54. data/lib/smartsheet/endpoints/sheets/sheets.rb +510 -510
  55. data/lib/smartsheet/endpoints/sheets/sheets_attachments.rb +174 -174
  56. data/lib/smartsheet/endpoints/sheets/sheets_share.rb +69 -69
  57. data/lib/smartsheet/endpoints/sights/sights.rb +101 -101
  58. data/lib/smartsheet/endpoints/sights/sights_share.rb +69 -69
  59. data/lib/smartsheet/endpoints/templates/templates.rb +29 -29
  60. data/lib/smartsheet/endpoints/token/token.rb +65 -65
  61. data/lib/smartsheet/endpoints/update_requests/sent_update_requests.rb +44 -44
  62. data/lib/smartsheet/endpoints/update_requests/update_requests.rb +74 -74
  63. data/lib/smartsheet/endpoints/users/alternate_emails.rb +79 -79
  64. data/lib/smartsheet/endpoints/users/users.rb +77 -77
  65. data/lib/smartsheet/endpoints/webhooks/webhooks.rb +71 -71
  66. data/lib/smartsheet/endpoints/workspaces/workspaces.rb +87 -87
  67. data/lib/smartsheet/endpoints/workspaces/workspaces_share.rb +70 -70
  68. data/lib/smartsheet/error.rb +69 -69
  69. data/lib/smartsheet/general_request.rb +74 -74
  70. data/lib/smartsheet/version.rb +5 -5
  71. data/smartsheet.gemspec +54 -54
  72. metadata +3 -4
@@ -1,70 +1,70 @@
1
- require 'forwardable'
2
-
3
- module Smartsheet
4
- # Top-level Smartsheet Error
5
- class Error < StandardError; end
6
-
7
- # Errors for invalid requests, timeouts, etc.
8
- class RequestError < Error
9
- attr_reader :wrapped_exception
10
-
11
- def initialize(ex)
12
- super(ex.message)
13
- @wrapped_exception = ex
14
- end
15
- end
16
-
17
- # Errors for generic HTTP error codes
18
- # @!attribute [r] status_code
19
- # @return [Fixnum] HTTP status code
20
- # @!attribute [r] reason_phrase
21
- # @return [String] HTTP reason phrase
22
- # @!attribute [r] headers
23
- # @return [Hash] HTTP response headers
24
- class HttpResponseError < Error
25
- attr_reader :status_code, :reason_phrase, :headers
26
-
27
- def initialize(status_code:, reason_phrase:, headers:, message:)
28
- super(message)
29
-
30
- @status_code = status_code
31
- @reason_phrase = reason_phrase
32
- @headers = headers
33
- end
34
- end
35
-
36
- # Errors for Smartsheet API error objects
37
- # @see https://smartsheet-platform.github.io/api-docs/?ruby#error-object API Error Object Docs
38
- #
39
- # @!attribute [r] error_code
40
- # @return [Fixnum] Smartsheet error code
41
- # @see https://smartsheet-platform.github.io/api-docs/?ruby#complete-error-code-list API Error
42
- # Code Docs
43
- # @!attribute [r] message
44
- # @return [String] Smartsheet error message
45
- # @see https://smartsheet-platform.github.io/api-docs/?ruby#complete-error-code-list API Error
46
- # Code Docs
47
- # @!attribute [r] ref_id
48
- # @return [String] Smartsheet error reference ID
49
- # @!attribute [r] detail
50
- # @return [Hash, Array, nil] optional details for some error scenarios
51
- class ApiError < HttpResponseError
52
- extend Forwardable
53
-
54
- def initialize(error_response)
55
- super(
56
- status_code: error_response.status_code,
57
- reason_phrase: error_response.reason_phrase,
58
- headers: error_response.headers,
59
- message: error_response.message
60
- )
61
- @error_response = error_response
62
- end
63
-
64
- def_delegators :error_response, :error_code, :message, :ref_id, :detail
65
-
66
- private
67
-
68
- attr_reader :error_response
69
- end
1
+ require 'forwardable'
2
+
3
+ module Smartsheet
4
+ # Top-level Smartsheet Error
5
+ class Error < StandardError; end
6
+
7
+ # Errors for invalid requests, timeouts, etc.
8
+ class RequestError < Error
9
+ attr_reader :wrapped_exception
10
+
11
+ def initialize(ex)
12
+ super(ex.message)
13
+ @wrapped_exception = ex
14
+ end
15
+ end
16
+
17
+ # Errors for generic HTTP error codes
18
+ # @!attribute [r] status_code
19
+ # @return [Fixnum] HTTP status code
20
+ # @!attribute [r] reason_phrase
21
+ # @return [String] HTTP reason phrase
22
+ # @!attribute [r] headers
23
+ # @return [Hash] HTTP response headers
24
+ class HttpResponseError < Error
25
+ attr_reader :status_code, :reason_phrase, :headers
26
+
27
+ def initialize(status_code:, reason_phrase:, headers:, message:)
28
+ super(message)
29
+
30
+ @status_code = status_code
31
+ @reason_phrase = reason_phrase
32
+ @headers = headers
33
+ end
34
+ end
35
+
36
+ # Errors for Smartsheet API error objects
37
+ # @see https://smartsheet-platform.github.io/api-docs/?ruby#error-object API Error Object Docs
38
+ #
39
+ # @!attribute [r] error_code
40
+ # @return [Fixnum] Smartsheet error code
41
+ # @see https://smartsheet-platform.github.io/api-docs/?ruby#complete-error-code-list API Error
42
+ # Code Docs
43
+ # @!attribute [r] message
44
+ # @return [String] Smartsheet error message
45
+ # @see https://smartsheet-platform.github.io/api-docs/?ruby#complete-error-code-list API Error
46
+ # Code Docs
47
+ # @!attribute [r] ref_id
48
+ # @return [String] Smartsheet error reference ID
49
+ # @!attribute [r] detail
50
+ # @return [Hash, Array, nil] optional details for some error scenarios
51
+ class ApiError < HttpResponseError
52
+ extend Forwardable
53
+
54
+ def initialize(error_response)
55
+ super(
56
+ status_code: error_response.status_code,
57
+ reason_phrase: error_response.reason_phrase,
58
+ headers: error_response.headers,
59
+ message: error_response.message
60
+ )
61
+ @error_response = error_response
62
+ end
63
+
64
+ def_delegators :error_response, :error_code, :message, :ref_id, :detail
65
+
66
+ private
67
+
68
+ attr_reader :error_response
69
+ end
70
70
  end
@@ -1,75 +1,75 @@
1
- require 'smartsheet/api/file_spec'
2
-
3
- module Smartsheet
4
- module GeneralRequest
5
- # Create a custom request using a provided method and URL path
6
- # @example Make a GET request to 'https://api.smartsheet.com/2.0/sheets/list'
7
- # client.request(method: :get, url_path: 'sheets/list')
8
- def request(method:, url_path:, body: nil, params: {}, header_overrides: {})
9
- spec = body.nil? ? {} : {body_type: :json}
10
- endpoint_spec = Smartsheet::API::EndpointSpec.new(method, [url_path], **spec)
11
- request_spec = Smartsheet::API::RequestSpec.new(
12
- header_overrides: header_overrides,
13
- body: body,
14
- params: params
15
- )
16
- client.make_request(endpoint_spec, request_spec)
17
- end
18
-
19
- # Create a custom request using a provided method, URL path, and file details
20
- # @example Make a POST request to 'https://api.smartsheet.com/2.0/sheets/1/attachments' with a file
21
- # client.request_with_file(
22
- # method: :get,
23
- # url_path: 'sheets/1/attachments',
24
- # file: File.open('my-file.docx'),
25
- # file_length: 1000,
26
- # filename: 'my-uploaded-file.docx',
27
- # content_type: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'
28
- # )
29
- def request_with_file(
30
- method:,
31
- url_path:,
32
- file:,
33
- file_length:,
34
- filename:,
35
- content_type: '',
36
- params: {},
37
- header_overrides: {}
38
- )
39
- endpoint_spec = Smartsheet::API::EndpointSpec.new(method, [url_path], body_type: :file)
40
- request_spec = Smartsheet::API::RequestSpec.new(
41
- header_overrides: header_overrides,
42
- params: params,
43
- file_spec: Smartsheet::API::ObjectFileSpec.new(file, filename, file_length, content_type)
44
- )
45
- client.make_request(endpoint_spec, request_spec)
46
- end
47
-
48
- # Create a custom request using a provided method, URL path, and filepath details
49
- # @example Make a POST request to 'https://api.smartsheet.com/2.0/sheets/1/attachments' with a file
50
- # client.request_with_file_from_path(
51
- # method: :get,
52
- # url_path: 'sheets/1/attachments',
53
- # path: './my-file.docx',
54
- # filename: 'my-uploaded-file.docx',
55
- # content_type: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'
56
- # )
57
- def request_with_file_from_path(
58
- method:,
59
- url_path:,
60
- path:,
61
- filename: nil,
62
- content_type: '',
63
- params: {},
64
- header_overrides: {}
65
- )
66
- endpoint_spec = Smartsheet::API::EndpointSpec.new(method, [url_path], body_type: :file)
67
- request_spec = Smartsheet::API::RequestSpec.new(
68
- header_overrides: header_overrides,
69
- params: params,
70
- file_spec: Smartsheet::API::PathFileSpec.new(path, filename, content_type)
71
- )
72
- client.make_request(endpoint_spec, request_spec)
73
- end
74
- end
1
+ require 'smartsheet/api/file_spec'
2
+
3
+ module Smartsheet
4
+ module GeneralRequest
5
+ # Create a custom request using a provided method and URL path
6
+ # @example Make a GET request to 'https://api.smartsheet.com/2.0/sheets/list'
7
+ # client.request(method: :get, url_path: 'sheets/list')
8
+ def request(method:, url_path:, body: nil, params: {}, header_overrides: {})
9
+ spec = body.nil? ? {} : {body_type: :json}
10
+ endpoint_spec = Smartsheet::API::EndpointSpec.new(method, [url_path], **spec)
11
+ request_spec = Smartsheet::API::RequestSpec.new(
12
+ header_overrides: header_overrides,
13
+ body: body,
14
+ params: params
15
+ )
16
+ client.make_request(endpoint_spec, request_spec)
17
+ end
18
+
19
+ # Create a custom request using a provided method, URL path, and file details
20
+ # @example Make a POST request to 'https://api.smartsheet.com/2.0/sheets/1/attachments' with a file
21
+ # client.request_with_file(
22
+ # method: :get,
23
+ # url_path: 'sheets/1/attachments',
24
+ # file: File.open('my-file.docx'),
25
+ # file_length: 1000,
26
+ # filename: 'my-uploaded-file.docx',
27
+ # content_type: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'
28
+ # )
29
+ def request_with_file(
30
+ method:,
31
+ url_path:,
32
+ file:,
33
+ file_length:,
34
+ filename:,
35
+ content_type: '',
36
+ params: {},
37
+ header_overrides: {}
38
+ )
39
+ endpoint_spec = Smartsheet::API::EndpointSpec.new(method, [url_path], body_type: :file)
40
+ request_spec = Smartsheet::API::RequestSpec.new(
41
+ header_overrides: header_overrides,
42
+ params: params,
43
+ file_spec: Smartsheet::API::ObjectFileSpec.new(file, filename, file_length, content_type)
44
+ )
45
+ client.make_request(endpoint_spec, request_spec)
46
+ end
47
+
48
+ # Create a custom request using a provided method, URL path, and filepath details
49
+ # @example Make a POST request to 'https://api.smartsheet.com/2.0/sheets/1/attachments' with a file
50
+ # client.request_with_file_from_path(
51
+ # method: :get,
52
+ # url_path: 'sheets/1/attachments',
53
+ # path: './my-file.docx',
54
+ # filename: 'my-uploaded-file.docx',
55
+ # content_type: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'
56
+ # )
57
+ def request_with_file_from_path(
58
+ method:,
59
+ url_path:,
60
+ path:,
61
+ filename: nil,
62
+ content_type: '',
63
+ params: {},
64
+ header_overrides: {}
65
+ )
66
+ endpoint_spec = Smartsheet::API::EndpointSpec.new(method, [url_path], body_type: :file)
67
+ request_spec = Smartsheet::API::RequestSpec.new(
68
+ header_overrides: header_overrides,
69
+ params: params,
70
+ file_spec: Smartsheet::API::PathFileSpec.new(path, filename, content_type)
71
+ )
72
+ client.make_request(endpoint_spec, request_spec)
73
+ end
74
+ end
75
75
  end
@@ -1,5 +1,5 @@
1
- require 'smartsheet/constants'
2
-
3
- module Smartsheet
4
- VERSION = Constants::VERSION
5
- end
1
+ require 'smartsheet/constants'
2
+
3
+ module Smartsheet
4
+ VERSION = Constants::VERSION
5
+ end
data/smartsheet.gemspec CHANGED
@@ -1,54 +1,54 @@
1
- # coding: utf-8
2
-
3
- lib = File.expand_path('../lib', __FILE__)
4
- $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
5
- require 'smartsheet/version'
6
-
7
- Gem::Specification.new do |spec|
8
- spec.name = 'smartsheet'
9
- spec.version = Smartsheet::VERSION
10
- spec.author = 'Smartsheet'
11
- spec.email = 'api@smartsheet.com'
12
-
13
- spec.summary = 'An SDK to simplify connecting to the Smartsheet API from Ruby applications.'
14
- spec.description = <<-EOF
15
- This is an SDK to simplify connecting to the Smartsheet API
16
- (http://www.smartsheet.com/developers/api-documentation) from Ruby applications.
17
- EOF
18
- spec.homepage = 'https://github.com/smartsheet-platform/smartsheet-ruby-sdk'
19
- spec.license = 'Apache-2.0'
20
-
21
- # Prevent pushing this gem to RubyGems.org. To allow pushes either set the 'allowed_push_host'
22
- # to allow pushing to a single host or delete this section to allow pushing to any host.
23
- unless spec.respond_to?(:metadata)
24
- raise 'RubyGems 2.0 or newer is required to protect against public gem pushes.'
25
- end
26
-
27
- spec.files = `git ls-files -z`.split("\x0").reject do |f|
28
- f.match(/^(test|spec|features)/)
29
- end
30
- spec.bindir = 'bin'
31
- spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
32
- spec.require_paths = ['lib']
33
-
34
- spec.required_ruby_version = '~> 2.2'
35
-
36
- spec.add_dependency 'faraday', '~> 0.13.1'
37
- spec.add_dependency 'faraday_middleware', '~> 0.10.0'
38
- spec.add_dependency 'plissken', '~> 1.2'
39
- spec.add_dependency 'awrence', '~> 1.0'
40
-
41
- spec.add_development_dependency 'bundler', '~> 1.15'
42
- spec.add_development_dependency 'coveralls', '~> 0.8.21'
43
- spec.add_development_dependency 'cli', '~> 1.3'
44
- spec.add_development_dependency 'rake', '~> 10.0'
45
- spec.add_development_dependency 'minitest', '~> 5.0'
46
- spec.add_development_dependency 'mocha', '~> 1.3'
47
- spec.add_development_dependency 'timecop', '~> 0.9.1'
48
- spec.add_development_dependency 'rubocop', '~> 0.49'
49
- spec.add_development_dependency 'reek', '~> 4.7'
50
- spec.add_development_dependency 'rubycritic', '~> 3.4'
51
- spec.add_development_dependency 'yard', '~> 0.9'
52
- spec.add_development_dependency 'redcarpet', '~> 3.4'
53
- spec.add_development_dependency 'github-markup', '~> 1.6'
54
- end
1
+ # coding: utf-8
2
+
3
+ lib = File.expand_path('../lib', __FILE__)
4
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
5
+ require 'smartsheet/version'
6
+
7
+ Gem::Specification.new do |spec|
8
+ spec.name = 'smartsheet'
9
+ spec.version = Smartsheet::VERSION
10
+ spec.author = 'Smartsheet'
11
+ spec.email = 'api@smartsheet.com'
12
+
13
+ spec.summary = 'An SDK to simplify connecting to the Smartsheet API from Ruby applications.'
14
+ spec.description = <<-EOF
15
+ This is an SDK to simplify connecting to the Smartsheet API
16
+ (http://www.smartsheet.com/developers/api-documentation) from Ruby applications.
17
+ EOF
18
+ spec.homepage = 'https://github.com/smartsheet-platform/smartsheet-ruby-sdk'
19
+ spec.license = 'Apache-2.0'
20
+
21
+ # Prevent pushing this gem to RubyGems.org. To allow pushes either set the 'allowed_push_host'
22
+ # to allow pushing to a single host or delete this section to allow pushing to any host.
23
+ unless spec.respond_to?(:metadata)
24
+ raise 'RubyGems 2.0 or newer is required to protect against public gem pushes.'
25
+ end
26
+
27
+ spec.files = `git ls-files -z`.split("\x0").reject do |f|
28
+ f.match(/^(test|spec|features)/)
29
+ end
30
+ spec.bindir = 'bin'
31
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
32
+ spec.require_paths = ['lib']
33
+
34
+ spec.required_ruby_version = '~> 2.2'
35
+
36
+ spec.add_dependency 'faraday', '~> 0.13.1'
37
+ spec.add_dependency 'faraday_middleware', '~> 0.10.0'
38
+ spec.add_dependency 'plissken', '~> 1.2'
39
+ spec.add_dependency 'awrence', '~> 1.0'
40
+
41
+ spec.add_development_dependency 'bundler', '~> 1.15'
42
+ spec.add_development_dependency 'coveralls', '~> 0.8.21'
43
+ spec.add_development_dependency 'cli', '~> 1.3'
44
+ spec.add_development_dependency 'rake', '~> 10.0'
45
+ spec.add_development_dependency 'minitest', '~> 5.0'
46
+ spec.add_development_dependency 'mocha', '~> 1.3'
47
+ spec.add_development_dependency 'timecop', '~> 0.9.1'
48
+ spec.add_development_dependency 'rubocop', '~> 0.49'
49
+ spec.add_development_dependency 'reek', '~> 4.7'
50
+ spec.add_development_dependency 'rubycritic', '~> 3.4'
51
+ spec.add_development_dependency 'yard', '~> 0.9'
52
+ spec.add_development_dependency 'redcarpet', '~> 3.4'
53
+ spec.add_development_dependency 'github-markup', '~> 1.6'
54
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: smartsheet
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.77.0
4
+ version: 2.77.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Smartsheet
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-05-08 00:00:00.000000000 Z
11
+ date: 2019-06-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -345,8 +345,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
345
345
  - !ruby/object:Gem::Version
346
346
  version: '0'
347
347
  requirements: []
348
- rubyforge_project:
349
- rubygems_version: 2.7.6
348
+ rubygems_version: 3.0.4
350
349
  signing_key:
351
350
  specification_version: 4
352
351
  summary: An SDK to simplify connecting to the Smartsheet API from Ruby applications.