smartsheet 2.77.0 → 2.101.1

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 (73) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +12 -12
  3. data/.rubocop.yml +4 -4
  4. data/.travis.yml +29 -15
  5. data/.yardopts +3 -3
  6. data/ADVANCED.md +78 -78
  7. data/CHANGELOG.md +133 -112
  8. data/Gemfile +6 -6
  9. data/LICENSE +202 -202
  10. data/README.md +248 -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 +514 -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/sheets/sheets_summaries.rb +123 -0
  58. data/lib/smartsheet/endpoints/sights/sights.rb +101 -101
  59. data/lib/smartsheet/endpoints/sights/sights_share.rb +69 -69
  60. data/lib/smartsheet/endpoints/templates/templates.rb +29 -29
  61. data/lib/smartsheet/endpoints/token/token.rb +70 -66
  62. data/lib/smartsheet/endpoints/update_requests/sent_update_requests.rb +44 -44
  63. data/lib/smartsheet/endpoints/update_requests/update_requests.rb +74 -74
  64. data/lib/smartsheet/endpoints/users/alternate_emails.rb +79 -79
  65. data/lib/smartsheet/endpoints/users/users.rb +123 -77
  66. data/lib/smartsheet/endpoints/webhooks/webhooks.rb +71 -71
  67. data/lib/smartsheet/endpoints/workspaces/workspaces.rb +87 -87
  68. data/lib/smartsheet/endpoints/workspaces/workspaces_share.rb +70 -70
  69. data/lib/smartsheet/error.rb +69 -69
  70. data/lib/smartsheet/general_request.rb +74 -74
  71. data/lib/smartsheet/version.rb +5 -5
  72. data/smartsheet.gemspec +54 -54
  73. metadata +24 -12
@@ -1,19 +1,19 @@
1
- module Smartsheet
2
- module Constants
3
- VERSION = '2.77.0'.freeze
4
-
5
- USER_AGENT = 'smartsheet-ruby-sdk'.freeze
6
- API_URL = 'https://api.smartsheet.com/2.0'.freeze
7
- GOV_API_URL = 'https://api.smartsheetgov.com/2.0'.freeze
8
-
9
- JSON_TYPE = 'application/json'.freeze
10
- EXCEL_TYPE = 'application/vnd.ms-excel'.freeze
11
- PDF_TYPE = 'application/pdf'.freeze
12
- CSV_TYPE = 'text/csv'.freeze
13
- OPENXML_SPREADSHEET_TYPE =
14
- 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'.freeze
15
-
16
- DEFAULT_MAX_RETRY_TIME = 15
17
- DEFAULT_BACKOFF_METHOD = proc { |iteration, _result| 2**iteration + rand }
18
- end
1
+ module Smartsheet
2
+ module Constants
3
+ VERSION = '2.101.1'.freeze
4
+
5
+ USER_AGENT = 'smartsheet-ruby-sdk'.freeze
6
+ API_URL = 'https://api.smartsheet.com/2.0'.freeze
7
+ GOV_API_URL = 'https://api.smartsheetgov.com/2.0'.freeze
8
+
9
+ JSON_TYPE = 'application/json'.freeze
10
+ EXCEL_TYPE = 'application/vnd.ms-excel'.freeze
11
+ PDF_TYPE = 'application/pdf'.freeze
12
+ CSV_TYPE = 'text/csv'.freeze
13
+ OPENXML_SPREADSHEET_TYPE =
14
+ 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'.freeze
15
+
16
+ DEFAULT_MAX_RETRY_TIME = 15
17
+ DEFAULT_BACKOFF_METHOD = proc { |iteration, _result| 2**iteration + rand }
18
+ end
19
19
  end
@@ -1,31 +1,31 @@
1
- module Smartsheet
2
- # Contacts Endpoints
3
- # @see https://smartsheet-platform.github.io/api-docs/?ruby#contacts API Contacts Docs
4
- class Contacts
5
- attr_reader :client
6
- private :client
7
-
8
- def initialize(client)
9
- @client = client
10
- end
11
-
12
- def get(contact_id:, params: {}, header_overrides: {})
13
- endpoint_spec = Smartsheet::API::EndpointSpec.new(:get, ['contacts', :contact_id])
14
- request_spec = Smartsheet::API::RequestSpec.new(
15
- header_overrides: header_overrides,
16
- params: params,
17
- contact_id: contact_id
18
- )
19
- client.make_request(endpoint_spec, request_spec)
20
- end
21
-
22
- def list(params: {}, header_overrides: {})
23
- endpoint_spec = Smartsheet::API::EndpointSpec.new(:get, ['contacts'])
24
- request_spec = Smartsheet::API::RequestSpec.new(
25
- header_overrides: header_overrides,
26
- params: params
27
- )
28
- client.make_request(endpoint_spec, request_spec)
29
- end
30
- end
1
+ module Smartsheet
2
+ # Contacts Endpoints
3
+ # @see https://smartsheet-platform.github.io/api-docs/?ruby#contacts API Contacts Docs
4
+ class Contacts
5
+ attr_reader :client
6
+ private :client
7
+
8
+ def initialize(client)
9
+ @client = client
10
+ end
11
+
12
+ def get(contact_id:, params: {}, header_overrides: {})
13
+ endpoint_spec = Smartsheet::API::EndpointSpec.new(:get, ['contacts', :contact_id])
14
+ request_spec = Smartsheet::API::RequestSpec.new(
15
+ header_overrides: header_overrides,
16
+ params: params,
17
+ contact_id: contact_id
18
+ )
19
+ client.make_request(endpoint_spec, request_spec)
20
+ end
21
+
22
+ def list(params: {}, header_overrides: {})
23
+ endpoint_spec = Smartsheet::API::EndpointSpec.new(:get, ['contacts'])
24
+ request_spec = Smartsheet::API::RequestSpec.new(
25
+ header_overrides: header_overrides,
26
+ params: params
27
+ )
28
+ client.make_request(endpoint_spec, request_spec)
29
+ end
30
+ end
31
31
  end
@@ -1,21 +1,21 @@
1
- module Smartsheet
2
- # Events Endpoints
3
- # @see https://smartsheet-platform.github.io/api-docs/?ruby#event-reporting API Events Docs
4
- class Events
5
- attr_reader :client
6
- private :client
7
-
8
- def initialize(client)
9
- @client = client
10
- end
11
-
12
- def get(params: {}, header_overrides: {})
13
- endpoint_spec = Smartsheet::API::EndpointSpec.new(:get, ['events'])
14
- request_spec = Smartsheet::API::RequestSpec.new(
15
- header_overrides: header_overrides,
16
- params: params
17
- )
18
- client.make_request(endpoint_spec, request_spec)
19
- end
20
- end
1
+ module Smartsheet
2
+ # Events Endpoints
3
+ # @see https://smartsheet-platform.github.io/api-docs/?ruby#event-reporting API Events Docs
4
+ class Events
5
+ attr_reader :client
6
+ private :client
7
+
8
+ def initialize(client)
9
+ @client = client
10
+ end
11
+
12
+ def get(params: {}, header_overrides: {})
13
+ endpoint_spec = Smartsheet::API::EndpointSpec.new(:get, ['events'])
14
+ request_spec = Smartsheet::API::RequestSpec.new(
15
+ header_overrides: header_overrides,
16
+ params: params
17
+ )
18
+ client.make_request(endpoint_spec, request_spec)
19
+ end
20
+ end
21
21
  end
@@ -1,160 +1,160 @@
1
- module Smartsheet
2
- # Favorites Endpoints
3
- # @see https://smartsheet-platform.github.io/api-docs/?ruby#favorites API Favorites Docs
4
- class Favorites
5
- attr_reader :client
6
- private :client
7
-
8
- def initialize(client)
9
- @client = client
10
- end
11
-
12
- def add(body:, params: {}, header_overrides: {})
13
- endpoint_spec = Smartsheet::API::EndpointSpec.new(:post, ['favorites'], body_type: :json)
14
- request_spec = Smartsheet::API::RequestSpec.new(
15
- header_overrides: header_overrides,
16
- params: params,
17
- body: body
18
- )
19
- client.make_request(endpoint_spec, request_spec)
20
- end
21
-
22
- def list(params: {}, header_overrides: {})
23
- endpoint_spec = Smartsheet::API::EndpointSpec.new(:get, ['favorites'])
24
- request_spec = Smartsheet::API::RequestSpec.new(
25
- header_overrides: header_overrides,
26
- params: params
27
- )
28
- client.make_request(endpoint_spec, request_spec)
29
- end
30
-
31
- def remove_folder(folder_id:, params: {}, header_overrides: {})
32
- remove_favorite(
33
- url: ['folder', :folder_id],
34
- params: params,
35
- header_overrides: header_overrides,
36
- folder_id: folder_id
37
- )
38
- end
39
-
40
- def remove_report(report_id:, params: {}, header_overrides: {})
41
- remove_favorite(
42
- url: ['report', :report_id],
43
- params: params,
44
- header_overrides: header_overrides,
45
- report_id: report_id
46
- )
47
- end
48
-
49
- def remove_sheet(sheet_id:, params: {}, header_overrides: {})
50
- remove_favorite(
51
- url: ['sheet', :sheet_id],
52
- params: params,
53
- header_overrides: header_overrides,
54
- sheet_id: sheet_id
55
- )
56
- end
57
-
58
- def remove_sight(sight_id:, params: {}, header_overrides: {})
59
- remove_favorite(
60
- url: ['sight', :sight_id],
61
- params: params,
62
- header_overrides: header_overrides,
63
- sight_id: sight_id
64
- )
65
- end
66
-
67
- def remove_template(template_id:, params: {}, header_overrides: {})
68
- remove_favorite(
69
- url: ['template', :template_id],
70
- params: params,
71
- header_overrides: header_overrides,
72
- template_id: template_id
73
- )
74
- end
75
-
76
- def remove_workspace(workspace_id:, params: {}, header_overrides: {})
77
- remove_favorite(
78
- url: ['workspace', :workspace_id],
79
- params: params,
80
- header_overrides: header_overrides,
81
- workspace_id: workspace_id
82
- )
83
- end
84
-
85
- def remove_folders(folder_ids:, params: {}, header_overrides: {})
86
- remove_favorites(
87
- url: ['folder'],
88
- params: params,
89
- header_overrides: header_overrides,
90
- object_ids: folder_ids
91
- )
92
- end
93
-
94
- def remove_reports(report_ids:, params: {}, header_overrides: {})
95
- remove_favorites(
96
- url: ['report'],
97
- params: params,
98
- header_overrides: header_overrides,
99
- object_ids: report_ids
100
- )
101
- end
102
-
103
- def remove_sheets(sheet_ids:, params: {}, header_overrides: {})
104
- remove_favorites(
105
- url: ['sheet'],
106
- params: params,
107
- header_overrides: header_overrides,
108
- object_ids: sheet_ids
109
- )
110
- end
111
-
112
- def remove_sights(sight_ids:, params: {}, header_overrides: {})
113
- remove_favorites(
114
- url: ['sight'],
115
- params: params,
116
- header_overrides: header_overrides,
117
- object_ids: sight_ids
118
- )
119
- end
120
-
121
- def remove_templates(template_ids:, params: {}, header_overrides: {})
122
- remove_favorites(
123
- url: ['template'],
124
- params: params,
125
- header_overrides: header_overrides,
126
- object_ids: template_ids
127
- )
128
- end
129
-
130
- def remove_workspaces(workspace_ids:, params: {}, header_overrides: {})
131
- remove_favorites(
132
- url: ['workspace'],
133
- params: params,
134
- header_overrides: header_overrides,
135
- object_ids: workspace_ids
136
- )
137
- end
138
-
139
- private
140
-
141
- def remove_favorite(url:, params:, header_overrides:, **url_args)
142
- endpoint_spec = Smartsheet::API::EndpointSpec.new(:delete, ['favorites'] + url)
143
- request_spec = Smartsheet::API::RequestSpec.new(
144
- header_overrides: header_overrides,
145
- params: params,
146
- **url_args
147
- )
148
- client.make_request(endpoint_spec, request_spec)
149
- end
150
-
151
- def remove_favorites(object_ids:, url:, params:, header_overrides:)
152
- endpoint_spec = Smartsheet::API::EndpointSpec.new(:delete, ['favorites'] + url)
153
- request_spec = Smartsheet::API::RequestSpec.new(
154
- header_overrides: header_overrides,
155
- params: params.merge({objectIds: object_ids.join(',')})
156
- )
157
- client.make_request(endpoint_spec, request_spec)
158
- end
159
- end
1
+ module Smartsheet
2
+ # Favorites Endpoints
3
+ # @see https://smartsheet-platform.github.io/api-docs/?ruby#favorites API Favorites Docs
4
+ class Favorites
5
+ attr_reader :client
6
+ private :client
7
+
8
+ def initialize(client)
9
+ @client = client
10
+ end
11
+
12
+ def add(body:, params: {}, header_overrides: {})
13
+ endpoint_spec = Smartsheet::API::EndpointSpec.new(:post, ['favorites'], body_type: :json)
14
+ request_spec = Smartsheet::API::RequestSpec.new(
15
+ header_overrides: header_overrides,
16
+ params: params,
17
+ body: body
18
+ )
19
+ client.make_request(endpoint_spec, request_spec)
20
+ end
21
+
22
+ def list(params: {}, header_overrides: {})
23
+ endpoint_spec = Smartsheet::API::EndpointSpec.new(:get, ['favorites'])
24
+ request_spec = Smartsheet::API::RequestSpec.new(
25
+ header_overrides: header_overrides,
26
+ params: params
27
+ )
28
+ client.make_request(endpoint_spec, request_spec)
29
+ end
30
+
31
+ def remove_folder(folder_id:, params: {}, header_overrides: {})
32
+ remove_favorite(
33
+ url: ['folder', :folder_id],
34
+ params: params,
35
+ header_overrides: header_overrides,
36
+ folder_id: folder_id
37
+ )
38
+ end
39
+
40
+ def remove_report(report_id:, params: {}, header_overrides: {})
41
+ remove_favorite(
42
+ url: ['report', :report_id],
43
+ params: params,
44
+ header_overrides: header_overrides,
45
+ report_id: report_id
46
+ )
47
+ end
48
+
49
+ def remove_sheet(sheet_id:, params: {}, header_overrides: {})
50
+ remove_favorite(
51
+ url: ['sheet', :sheet_id],
52
+ params: params,
53
+ header_overrides: header_overrides,
54
+ sheet_id: sheet_id
55
+ )
56
+ end
57
+
58
+ def remove_sight(sight_id:, params: {}, header_overrides: {})
59
+ remove_favorite(
60
+ url: ['sight', :sight_id],
61
+ params: params,
62
+ header_overrides: header_overrides,
63
+ sight_id: sight_id
64
+ )
65
+ end
66
+
67
+ def remove_template(template_id:, params: {}, header_overrides: {})
68
+ remove_favorite(
69
+ url: ['template', :template_id],
70
+ params: params,
71
+ header_overrides: header_overrides,
72
+ template_id: template_id
73
+ )
74
+ end
75
+
76
+ def remove_workspace(workspace_id:, params: {}, header_overrides: {})
77
+ remove_favorite(
78
+ url: ['workspace', :workspace_id],
79
+ params: params,
80
+ header_overrides: header_overrides,
81
+ workspace_id: workspace_id
82
+ )
83
+ end
84
+
85
+ def remove_folders(folder_ids:, params: {}, header_overrides: {})
86
+ remove_favorites(
87
+ url: ['folder'],
88
+ params: params,
89
+ header_overrides: header_overrides,
90
+ object_ids: folder_ids
91
+ )
92
+ end
93
+
94
+ def remove_reports(report_ids:, params: {}, header_overrides: {})
95
+ remove_favorites(
96
+ url: ['report'],
97
+ params: params,
98
+ header_overrides: header_overrides,
99
+ object_ids: report_ids
100
+ )
101
+ end
102
+
103
+ def remove_sheets(sheet_ids:, params: {}, header_overrides: {})
104
+ remove_favorites(
105
+ url: ['sheet'],
106
+ params: params,
107
+ header_overrides: header_overrides,
108
+ object_ids: sheet_ids
109
+ )
110
+ end
111
+
112
+ def remove_sights(sight_ids:, params: {}, header_overrides: {})
113
+ remove_favorites(
114
+ url: ['sight'],
115
+ params: params,
116
+ header_overrides: header_overrides,
117
+ object_ids: sight_ids
118
+ )
119
+ end
120
+
121
+ def remove_templates(template_ids:, params: {}, header_overrides: {})
122
+ remove_favorites(
123
+ url: ['template'],
124
+ params: params,
125
+ header_overrides: header_overrides,
126
+ object_ids: template_ids
127
+ )
128
+ end
129
+
130
+ def remove_workspaces(workspace_ids:, params: {}, header_overrides: {})
131
+ remove_favorites(
132
+ url: ['workspace'],
133
+ params: params,
134
+ header_overrides: header_overrides,
135
+ object_ids: workspace_ids
136
+ )
137
+ end
138
+
139
+ private
140
+
141
+ def remove_favorite(url:, params:, header_overrides:, **url_args)
142
+ endpoint_spec = Smartsheet::API::EndpointSpec.new(:delete, ['favorites'] + url)
143
+ request_spec = Smartsheet::API::RequestSpec.new(
144
+ header_overrides: header_overrides,
145
+ params: params,
146
+ **url_args
147
+ )
148
+ client.make_request(endpoint_spec, request_spec)
149
+ end
150
+
151
+ def remove_favorites(object_ids:, url:, params:, header_overrides:)
152
+ endpoint_spec = Smartsheet::API::EndpointSpec.new(:delete, ['favorites'] + url)
153
+ request_spec = Smartsheet::API::RequestSpec.new(
154
+ header_overrides: header_overrides,
155
+ params: params.merge({objectIds: object_ids.join(',')})
156
+ )
157
+ client.make_request(endpoint_spec, request_spec)
158
+ end
159
+ end
160
160
  end