smartsheet 1.0.0 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (70) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +11 -11
  3. data/.rubocop.yml +4 -4
  4. data/.travis.yml +13 -6
  5. data/.yardopts +3 -3
  6. data/CHANGELOG.md +103 -0
  7. data/Gemfile +6 -6
  8. data/LICENSE +202 -202
  9. data/README.md +214 -141
  10. data/Rakefile +29 -23
  11. data/bin/console +14 -14
  12. data/bin/setup +8 -8
  13. data/lib/smartsheet.rb +2 -2
  14. data/lib/smartsheet/api/body_builder.rb +25 -25
  15. data/lib/smartsheet/api/endpoint_spec.rb +54 -36
  16. data/lib/smartsheet/api/faraday_adapter/faraday_net_client.rb +45 -42
  17. data/lib/smartsheet/api/faraday_adapter/faraday_response.rb +70 -70
  18. data/lib/smartsheet/api/faraday_adapter/middleware/faraday_error_translator.rb +20 -20
  19. data/lib/smartsheet/api/faraday_adapter/middleware/response_parser.rb +25 -25
  20. data/lib/smartsheet/api/file_spec.rb +31 -31
  21. data/lib/smartsheet/api/header_builder.rb +90 -84
  22. data/lib/smartsheet/api/request.rb +42 -29
  23. data/lib/smartsheet/api/request_client.rb +43 -27
  24. data/lib/smartsheet/api/request_logger.rb +182 -182
  25. data/lib/smartsheet/api/request_spec.rb +57 -44
  26. data/lib/smartsheet/api/response_net_client_decorator.rb +54 -54
  27. data/lib/smartsheet/api/retry_logic.rb +40 -40
  28. data/lib/smartsheet/api/retry_net_client_decorator.rb +37 -37
  29. data/lib/smartsheet/api/url_builder.rb +25 -25
  30. data/lib/smartsheet/client.rb +191 -185
  31. data/lib/smartsheet/constants.rb +15 -15
  32. data/lib/smartsheet/endpoints/contacts/contacts.rb +30 -30
  33. data/lib/smartsheet/endpoints/favorites/favorites.rb +159 -159
  34. data/lib/smartsheet/endpoints/folders/folders.rb +125 -125
  35. data/lib/smartsheet/endpoints/groups/groups.rb +83 -83
  36. data/lib/smartsheet/endpoints/home/home.rb +20 -20
  37. data/lib/smartsheet/endpoints/reports/reports.rb +100 -100
  38. data/lib/smartsheet/endpoints/reports/reports_share.rb +69 -69
  39. data/lib/smartsheet/endpoints/search/search.rb +30 -30
  40. data/lib/smartsheet/endpoints/server_info/server_info.rb +21 -21
  41. data/lib/smartsheet/endpoints/share/share.rb +58 -58
  42. data/lib/smartsheet/endpoints/sheets/automation_rules.rb +56 -0
  43. data/lib/smartsheet/endpoints/sheets/cells.rb +82 -82
  44. data/lib/smartsheet/endpoints/sheets/columns.rb +66 -66
  45. data/lib/smartsheet/endpoints/sheets/comments.rb +64 -64
  46. data/lib/smartsheet/endpoints/sheets/comments_attachments.rb +78 -78
  47. data/lib/smartsheet/endpoints/sheets/cross_sheet_references.rb +45 -0
  48. data/lib/smartsheet/endpoints/sheets/discussions.rb +84 -84
  49. data/lib/smartsheet/endpoints/sheets/discussions_attachments.rb +22 -22
  50. data/lib/smartsheet/endpoints/sheets/rows.rb +106 -95
  51. data/lib/smartsheet/endpoints/sheets/rows_attachments.rb +92 -92
  52. data/lib/smartsheet/endpoints/sheets/sheets.rb +326 -317
  53. data/lib/smartsheet/endpoints/sheets/sheets_attachments.rb +174 -174
  54. data/lib/smartsheet/endpoints/sheets/sheets_share.rb +69 -69
  55. data/lib/smartsheet/endpoints/sights/sights.rb +101 -101
  56. data/lib/smartsheet/endpoints/sights/sights_share.rb +69 -69
  57. data/lib/smartsheet/endpoints/templates/templates.rb +29 -29
  58. data/lib/smartsheet/endpoints/token/token.rb +65 -60
  59. data/lib/smartsheet/endpoints/update_requests/sent_update_requests.rb +44 -44
  60. data/lib/smartsheet/endpoints/update_requests/update_requests.rb +74 -74
  61. data/lib/smartsheet/endpoints/users/alternate_emails.rb +79 -79
  62. data/lib/smartsheet/endpoints/users/users.rb +77 -77
  63. data/lib/smartsheet/endpoints/webhooks/webhooks.rb +71 -71
  64. data/lib/smartsheet/endpoints/workspaces/workspaces.rb +87 -87
  65. data/lib/smartsheet/endpoints/workspaces/workspaces_share.rb +70 -70
  66. data/lib/smartsheet/error.rb +69 -69
  67. data/lib/smartsheet/general_request.rb +74 -74
  68. data/lib/smartsheet/version.rb +5 -5
  69. data/smartsheet.gemspec +54 -52
  70. metadata +34 -3
@@ -1,16 +1,16 @@
1
- module Smartsheet
2
- module Constants
3
- VERSION = '1.0.0'.freeze
4
-
5
- USER_AGENT = 'smartsheet-ruby-sdk'.freeze
6
- API_URL = 'https://api.smartsheet.com/2.0'.freeze
7
-
8
- JSON_TYPE = 'application/json'.freeze
9
- EXCEL_TYPE = 'application/vnd.ms-excel'.freeze
10
- PDF_TYPE = 'application/pdf'.freeze
11
- CSV_TYPE = 'text/csv'.freeze
12
-
13
- DEFAULT_MAX_RETRY_TIME = 15
14
- DEFAULT_BACKOFF_METHOD = proc { |iteration, _result| 2**iteration + rand }
15
- end
1
+ module Smartsheet
2
+ module Constants
3
+ VERSION = '1.1.0'.freeze
4
+
5
+ USER_AGENT = 'smartsheet-ruby-sdk'.freeze
6
+ API_URL = 'https://api.smartsheet.com/2.0'.freeze
7
+
8
+ JSON_TYPE = 'application/json'.freeze
9
+ EXCEL_TYPE = 'application/vnd.ms-excel'.freeze
10
+ PDF_TYPE = 'application/pdf'.freeze
11
+ CSV_TYPE = 'text/csv'.freeze
12
+
13
+ DEFAULT_MAX_RETRY_TIME = 15
14
+ DEFAULT_BACKOFF_METHOD = proc { |iteration, _result| 2**iteration + rand }
15
+ end
16
16
  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,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
@@ -1,126 +1,126 @@
1
- module Smartsheet
2
- # Folders Endpoints
3
- # @see https://smartsheet-platform.github.io/api-docs/?ruby#folders API Folders Docs
4
- class Folders
5
- attr_reader :client
6
- private :client
7
-
8
- def initialize(client)
9
- @client = client
10
- end
11
-
12
- def copy(folder_id:, body:, params: {}, header_overrides: {})
13
- endpoint_spec = Smartsheet::API::EndpointSpec.new(:post, ['folders', :folder_id, 'copy'], body_type: :json)
14
- request_spec = Smartsheet::API::RequestSpec.new(
15
- header_overrides: header_overrides,
16
- params: params,
17
- body: body,
18
- folder_id: folder_id
19
- )
20
- client.make_request(endpoint_spec, request_spec)
21
- end
22
-
23
- def create(body:, params: {}, header_overrides: {})
24
- endpoint_spec = Smartsheet::API::EndpointSpec.new(:post, ['home', 'folders'], body_type: :json)
25
- request_spec = Smartsheet::API::RequestSpec.new(
26
- params: params,
27
- header_overrides: header_overrides,
28
- body: body
29
- )
30
- client.make_request(endpoint_spec, request_spec)
31
- end
32
-
33
- def create_in_folder(folder_id:, body:, params: {}, header_overrides: {})
34
- endpoint_spec = Smartsheet::API::EndpointSpec.new(:post, ['folders', :folder_id, 'folders'], body_type: :json)
35
- request_spec = Smartsheet::API::RequestSpec.new(
36
- params: params,
37
- header_overrides: header_overrides,
38
- body: body,
39
- folder_id: folder_id
40
- )
41
- client.make_request(endpoint_spec, request_spec)
42
- end
43
-
44
- def create_in_workspace(workspace_id:, body:, params: {}, header_overrides: {})
45
- endpoint_spec = Smartsheet::API::EndpointSpec.new(:post, ['workspaces', :workspace_id, 'folders'], body_type: :json)
46
- request_spec = Smartsheet::API::RequestSpec.new(
47
- params: params,
48
- header_overrides: header_overrides,
49
- body: body,
50
- workspace_id: workspace_id
51
- )
52
- client.make_request(endpoint_spec, request_spec)
53
- end
54
-
55
- def delete(folder_id:, params: {}, header_overrides: {})
56
- endpoint_spec = Smartsheet::API::EndpointSpec.new(:delete, ['folders', :folder_id])
57
- request_spec = Smartsheet::API::RequestSpec.new(
58
- params: params,
59
- header_overrides: header_overrides,
60
- folder_id: folder_id
61
- )
62
- client.make_request(endpoint_spec, request_spec)
63
- end
64
-
65
- def get(folder_id:, params: {}, header_overrides: {})
66
- endpoint_spec = Smartsheet::API::EndpointSpec.new(:get, ['folders', :folder_id])
67
- request_spec = Smartsheet::API::RequestSpec.new(
68
- header_overrides: header_overrides,
69
- params: params,
70
- folder_id: folder_id
71
- )
72
- client.make_request(endpoint_spec, request_spec)
73
- end
74
-
75
- def list(params: {}, header_overrides: {})
76
- endpoint_spec = Smartsheet::API::EndpointSpec.new(:get, ['home', 'folders'])
77
- request_spec = Smartsheet::API::RequestSpec.new(
78
- header_overrides: header_overrides,
79
- params: params
80
- )
81
- client.make_request(endpoint_spec, request_spec)
82
- end
83
-
84
- def list_in_folder(folder_id:, params: {}, header_overrides: {})
85
- endpoint_spec = Smartsheet::API::EndpointSpec.new(:get, ['folders', :folder_id, 'folders'])
86
- request_spec = Smartsheet::API::RequestSpec.new(
87
- header_overrides: header_overrides,
88
- params: params,
89
- folder_id: folder_id
90
- )
91
- client.make_request(endpoint_spec, request_spec)
92
- end
93
-
94
- def list_in_workspace(workspace_id:, params: {}, header_overrides: {})
95
- endpoint_spec = Smartsheet::API::EndpointSpec.new(:get, ['workspaces', :workspace_id, 'folders'])
96
- request_spec = Smartsheet::API::RequestSpec.new(
97
- header_overrides: header_overrides,
98
- params: params,
99
- workspace_id: workspace_id
100
- )
101
- client.make_request(endpoint_spec, request_spec)
102
- end
103
-
104
- def move(folder_id:, body:, params: {}, header_overrides: {})
105
- endpoint_spec = Smartsheet::API::EndpointSpec.new(:post, ['folders', :folder_id, 'move'], body_type: :json)
106
- request_spec = Smartsheet::API::RequestSpec.new(
107
- params: params,
108
- header_overrides: header_overrides,
109
- body: body,
110
- folder_id: folder_id
111
- )
112
- client.make_request(endpoint_spec, request_spec)
113
- end
114
-
115
- def update(folder_id:, body:, params: {}, header_overrides: {})
116
- endpoint_spec = Smartsheet::API::EndpointSpec.new(:put, ['folders', :folder_id], body_type: :json)
117
- request_spec = Smartsheet::API::RequestSpec.new(
118
- params: params,
119
- header_overrides: header_overrides,
120
- body: body,
121
- folder_id: folder_id
122
- )
123
- client.make_request(endpoint_spec, request_spec)
124
- end
125
- end
1
+ module Smartsheet
2
+ # Folders Endpoints
3
+ # @see https://smartsheet-platform.github.io/api-docs/?ruby#folders API Folders Docs
4
+ class Folders
5
+ attr_reader :client
6
+ private :client
7
+
8
+ def initialize(client)
9
+ @client = client
10
+ end
11
+
12
+ def copy(folder_id:, body:, params: {}, header_overrides: {})
13
+ endpoint_spec = Smartsheet::API::EndpointSpec.new(:post, ['folders', :folder_id, 'copy'], body_type: :json)
14
+ request_spec = Smartsheet::API::RequestSpec.new(
15
+ header_overrides: header_overrides,
16
+ params: params,
17
+ body: body,
18
+ folder_id: folder_id
19
+ )
20
+ client.make_request(endpoint_spec, request_spec)
21
+ end
22
+
23
+ def create(body:, params: {}, header_overrides: {})
24
+ endpoint_spec = Smartsheet::API::EndpointSpec.new(:post, ['home', 'folders'], body_type: :json)
25
+ request_spec = Smartsheet::API::RequestSpec.new(
26
+ params: params,
27
+ header_overrides: header_overrides,
28
+ body: body
29
+ )
30
+ client.make_request(endpoint_spec, request_spec)
31
+ end
32
+
33
+ def create_in_folder(folder_id:, body:, params: {}, header_overrides: {})
34
+ endpoint_spec = Smartsheet::API::EndpointSpec.new(:post, ['folders', :folder_id, 'folders'], body_type: :json)
35
+ request_spec = Smartsheet::API::RequestSpec.new(
36
+ params: params,
37
+ header_overrides: header_overrides,
38
+ body: body,
39
+ folder_id: folder_id
40
+ )
41
+ client.make_request(endpoint_spec, request_spec)
42
+ end
43
+
44
+ def create_in_workspace(workspace_id:, body:, params: {}, header_overrides: {})
45
+ endpoint_spec = Smartsheet::API::EndpointSpec.new(:post, ['workspaces', :workspace_id, 'folders'], body_type: :json)
46
+ request_spec = Smartsheet::API::RequestSpec.new(
47
+ params: params,
48
+ header_overrides: header_overrides,
49
+ body: body,
50
+ workspace_id: workspace_id
51
+ )
52
+ client.make_request(endpoint_spec, request_spec)
53
+ end
54
+
55
+ def delete(folder_id:, params: {}, header_overrides: {})
56
+ endpoint_spec = Smartsheet::API::EndpointSpec.new(:delete, ['folders', :folder_id])
57
+ request_spec = Smartsheet::API::RequestSpec.new(
58
+ params: params,
59
+ header_overrides: header_overrides,
60
+ folder_id: folder_id
61
+ )
62
+ client.make_request(endpoint_spec, request_spec)
63
+ end
64
+
65
+ def get(folder_id:, params: {}, header_overrides: {})
66
+ endpoint_spec = Smartsheet::API::EndpointSpec.new(:get, ['folders', :folder_id])
67
+ request_spec = Smartsheet::API::RequestSpec.new(
68
+ header_overrides: header_overrides,
69
+ params: params,
70
+ folder_id: folder_id
71
+ )
72
+ client.make_request(endpoint_spec, request_spec)
73
+ end
74
+
75
+ def list(params: {}, header_overrides: {})
76
+ endpoint_spec = Smartsheet::API::EndpointSpec.new(:get, ['home', 'folders'])
77
+ request_spec = Smartsheet::API::RequestSpec.new(
78
+ header_overrides: header_overrides,
79
+ params: params
80
+ )
81
+ client.make_request(endpoint_spec, request_spec)
82
+ end
83
+
84
+ def list_in_folder(folder_id:, params: {}, header_overrides: {})
85
+ endpoint_spec = Smartsheet::API::EndpointSpec.new(:get, ['folders', :folder_id, 'folders'])
86
+ request_spec = Smartsheet::API::RequestSpec.new(
87
+ header_overrides: header_overrides,
88
+ params: params,
89
+ folder_id: folder_id
90
+ )
91
+ client.make_request(endpoint_spec, request_spec)
92
+ end
93
+
94
+ def list_in_workspace(workspace_id:, params: {}, header_overrides: {})
95
+ endpoint_spec = Smartsheet::API::EndpointSpec.new(:get, ['workspaces', :workspace_id, 'folders'])
96
+ request_spec = Smartsheet::API::RequestSpec.new(
97
+ header_overrides: header_overrides,
98
+ params: params,
99
+ workspace_id: workspace_id
100
+ )
101
+ client.make_request(endpoint_spec, request_spec)
102
+ end
103
+
104
+ def move(folder_id:, body:, params: {}, header_overrides: {})
105
+ endpoint_spec = Smartsheet::API::EndpointSpec.new(:post, ['folders', :folder_id, 'move'], body_type: :json)
106
+ request_spec = Smartsheet::API::RequestSpec.new(
107
+ params: params,
108
+ header_overrides: header_overrides,
109
+ body: body,
110
+ folder_id: folder_id
111
+ )
112
+ client.make_request(endpoint_spec, request_spec)
113
+ end
114
+
115
+ def update(folder_id:, body:, params: {}, header_overrides: {})
116
+ endpoint_spec = Smartsheet::API::EndpointSpec.new(:put, ['folders', :folder_id], body_type: :json)
117
+ request_spec = Smartsheet::API::RequestSpec.new(
118
+ params: params,
119
+ header_overrides: header_overrides,
120
+ body: body,
121
+ folder_id: folder_id
122
+ )
123
+ client.make_request(endpoint_spec, request_spec)
124
+ end
125
+ end
126
126
  end