smartsheet 1.0.0.beta.0

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 (68) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +10 -0
  3. data/.rubocop.yml +5 -0
  4. data/.travis.yml +6 -0
  5. data/Gemfile +6 -0
  6. data/LICENSE +202 -0
  7. data/README.md +139 -0
  8. data/Rakefile +13 -0
  9. data/bin/console +14 -0
  10. data/bin/setup +8 -0
  11. data/lib/smartsheet.rb +3 -0
  12. data/lib/smartsheet/api/body_builder.rb +26 -0
  13. data/lib/smartsheet/api/endpoint_spec.rb +35 -0
  14. data/lib/smartsheet/api/faraday_adapter/faraday_net_client.rb +42 -0
  15. data/lib/smartsheet/api/faraday_adapter/faraday_response.rb +60 -0
  16. data/lib/smartsheet/api/faraday_adapter/middleware/faraday_error_translator.rb +20 -0
  17. data/lib/smartsheet/api/faraday_adapter/middleware/response_parser.rb +25 -0
  18. data/lib/smartsheet/api/file_spec.rb +28 -0
  19. data/lib/smartsheet/api/header_builder.rb +85 -0
  20. data/lib/smartsheet/api/request.rb +29 -0
  21. data/lib/smartsheet/api/request_client.rb +26 -0
  22. data/lib/smartsheet/api/request_logger.rb +148 -0
  23. data/lib/smartsheet/api/request_spec.rb +43 -0
  24. data/lib/smartsheet/api/response_net_client_decorator.rb +47 -0
  25. data/lib/smartsheet/api/retry_logic.rb +37 -0
  26. data/lib/smartsheet/api/retry_net_client_decorator.rb +36 -0
  27. data/lib/smartsheet/api/url_builder.rb +25 -0
  28. data/lib/smartsheet/client.rb +115 -0
  29. data/lib/smartsheet/constants.rb +16 -0
  30. data/lib/smartsheet/endpoints/contacts/contacts.rb +29 -0
  31. data/lib/smartsheet/endpoints/favorites/favorites.rb +158 -0
  32. data/lib/smartsheet/endpoints/folders/folders.rb +124 -0
  33. data/lib/smartsheet/endpoints/groups/groups.rb +82 -0
  34. data/lib/smartsheet/endpoints/home/home.rb +19 -0
  35. data/lib/smartsheet/endpoints/reports/reports.rb +96 -0
  36. data/lib/smartsheet/endpoints/reports/reports_share.rb +68 -0
  37. data/lib/smartsheet/endpoints/search/search.rb +29 -0
  38. data/lib/smartsheet/endpoints/server_info/server_info.rb +19 -0
  39. data/lib/smartsheet/endpoints/share/share.rb +58 -0
  40. data/lib/smartsheet/endpoints/sheets/cells.rb +80 -0
  41. data/lib/smartsheet/endpoints/sheets/columns.rb +65 -0
  42. data/lib/smartsheet/endpoints/sheets/comments.rb +60 -0
  43. data/lib/smartsheet/endpoints/sheets/comments_attachments.rb +77 -0
  44. data/lib/smartsheet/endpoints/sheets/discussions.rb +80 -0
  45. data/lib/smartsheet/endpoints/sheets/discussions_attachments.rb +21 -0
  46. data/lib/smartsheet/endpoints/sheets/rows.rb +91 -0
  47. data/lib/smartsheet/endpoints/sheets/rows_attachments.rb +91 -0
  48. data/lib/smartsheet/endpoints/sheets/sheets.rb +301 -0
  49. data/lib/smartsheet/endpoints/sheets/sheets_attachments.rb +173 -0
  50. data/lib/smartsheet/endpoints/sheets/sheets_share.rb +68 -0
  51. data/lib/smartsheet/endpoints/sights/sights.rb +97 -0
  52. data/lib/smartsheet/endpoints/sights/sights_share.rb +68 -0
  53. data/lib/smartsheet/endpoints/templates/templates.rb +28 -0
  54. data/lib/smartsheet/endpoints/token/token.rb +57 -0
  55. data/lib/smartsheet/endpoints/update_requests/sent_update_requests.rb +42 -0
  56. data/lib/smartsheet/endpoints/update_requests/update_requests.rb +69 -0
  57. data/lib/smartsheet/endpoints/users/alternate_emails.rb +77 -0
  58. data/lib/smartsheet/endpoints/users/users.rb +73 -0
  59. data/lib/smartsheet/endpoints/webhooks/webhooks.rb +70 -0
  60. data/lib/smartsheet/endpoints/workspaces/workspaces.rb +83 -0
  61. data/lib/smartsheet/endpoints/workspaces/workspaces_share.rb +68 -0
  62. data/lib/smartsheet/error.rb +30 -0
  63. data/lib/smartsheet/general_request.rb +53 -0
  64. data/lib/smartsheet/version.rb +5 -0
  65. data/read-write-sheet/config.json +4 -0
  66. data/read-write-sheet/read_write_sheet.rb +89 -0
  67. data/smartsheet.gemspec +47 -0
  68. metadata +279 -0
@@ -0,0 +1,68 @@
1
+ require 'smartsheet/endpoints/share/share'
2
+
3
+ module Smartsheet
4
+ class SheetsShare
5
+ attr_reader :client
6
+ private :client
7
+
8
+ URL = ['sheets', :sheet_id].freeze
9
+
10
+ def initialize(client)
11
+ @client = client
12
+ end
13
+
14
+ def delete(sheet_id:, share_id:, params: {}, header_overrides: {})
15
+ delete_share(
16
+ share_id: share_id,
17
+ url: URL,
18
+ params: params,
19
+ header_overrides: header_overrides,
20
+ sheet_id: sheet_id
21
+ )
22
+ end
23
+
24
+ def get(sheet_id:, share_id:, params: {}, header_overrides: {})
25
+ get_share(
26
+ share_id: share_id,
27
+ url: URL,
28
+ params: params,
29
+ header_overrides: header_overrides,
30
+ sheet_id: sheet_id
31
+ )
32
+ end
33
+
34
+ def list(sheet_id:, params: {}, header_overrides: {})
35
+ list_share(
36
+ url: URL,
37
+ header_overrides: header_overrides,
38
+ params: params,
39
+ sheet_id: sheet_id
40
+ )
41
+ end
42
+
43
+ def create(sheet_id:, body:, params: {}, header_overrides: {})
44
+ create_share(
45
+ url: URL,
46
+ header_overrides: header_overrides,
47
+ params: params,
48
+ body: body,
49
+ sheet_id: sheet_id
50
+ )
51
+ end
52
+
53
+ def update(sheet_id:, share_id:, body:, params: {}, header_overrides: {})
54
+ update_share(
55
+ share_id: share_id,
56
+ url: URL,
57
+ params: params,
58
+ header_overrides: header_overrides,
59
+ body: body,
60
+ sheet_id: sheet_id
61
+ )
62
+ end
63
+
64
+ private
65
+
66
+ include Smartsheet::Share
67
+ end
68
+ end
@@ -0,0 +1,97 @@
1
+ require_relative 'sights_share'
2
+
3
+ module Smartsheet
4
+ class Sights
5
+ attr_reader :client, :share
6
+ private :client
7
+
8
+ def initialize(client)
9
+ @client = client
10
+
11
+ @share = SightsShare.new(client)
12
+ end
13
+
14
+ def copy(sight_id:, body:, params: {}, header_overrides: {})
15
+ endpoint_spec = Smartsheet::API::EndpointSpec.new(:post, ['sights', :sight_id, 'copy'], body_type: :json)
16
+ request_spec = Smartsheet::API::RequestSpec.new(
17
+ header_overrides: header_overrides,
18
+ params: params,
19
+ body: body,
20
+ sight_id: sight_id
21
+ )
22
+ client.make_request(endpoint_spec, request_spec)
23
+ end
24
+
25
+ def delete(sight_id:, params: {}, header_overrides: {})
26
+ endpoint_spec = Smartsheet::API::EndpointSpec.new(:delete, ['sights', :sight_id])
27
+ request_spec = Smartsheet::API::RequestSpec.new(
28
+ params: params,
29
+ header_overrides: header_overrides,
30
+ sight_id: sight_id
31
+ )
32
+ client.make_request(endpoint_spec, request_spec)
33
+ end
34
+
35
+ def get(sight_id:, params: {}, header_overrides: {})
36
+ endpoint_spec = Smartsheet::API::EndpointSpec.new(:get, ['sights', :sight_id])
37
+ request_spec = Smartsheet::API::RequestSpec.new(
38
+ params: params,
39
+ header_overrides: header_overrides,
40
+ sight_id: sight_id
41
+ )
42
+ client.make_request(endpoint_spec, request_spec)
43
+ end
44
+
45
+ def list(params: {}, header_overrides: {})
46
+ endpoint_spec = Smartsheet::API::EndpointSpec.new(:get, ['sights'])
47
+ request_spec = Smartsheet::API::RequestSpec.new(
48
+ header_overrides: header_overrides,
49
+ params: params
50
+ )
51
+ client.make_request(endpoint_spec, request_spec)
52
+ end
53
+
54
+ def move(sight_id:, body:, params: {}, header_overrides: {})
55
+ endpoint_spec = Smartsheet::API::EndpointSpec.new(:post, ['sights', :sight_id, 'move'], body_type: :json)
56
+ request_spec = Smartsheet::API::RequestSpec.new(
57
+ params: params,
58
+ header_overrides: header_overrides,
59
+ body: body,
60
+ sight_id: sight_id
61
+ )
62
+ client.make_request(endpoint_spec, request_spec)
63
+ end
64
+
65
+ def get_publish_status(sight_id:, params: {}, header_overrides: {})
66
+ endpoint_spec = Smartsheet::API::EndpointSpec.new(:get, ['sights', :sight_id, 'publish'])
67
+ request_spec = Smartsheet::API::RequestSpec.new(
68
+ params: params,
69
+ header_overrides: header_overrides,
70
+ sight_id: sight_id
71
+ )
72
+ client.make_request(endpoint_spec, request_spec)
73
+ end
74
+
75
+ def set_publish_status(sight_id:, body:, params: {}, header_overrides: {})
76
+ endpoint_spec = Smartsheet::API::EndpointSpec.new(:put, ['sights', :sight_id, 'publish'], body_type: :json)
77
+ request_spec = Smartsheet::API::RequestSpec.new(
78
+ params: params,
79
+ header_overrides: header_overrides,
80
+ body: body,
81
+ sight_id: sight_id
82
+ )
83
+ client.make_request(endpoint_spec, request_spec)
84
+ end
85
+
86
+ def update(sight_id:, body:, params: {}, header_overrides: {})
87
+ endpoint_spec = Smartsheet::API::EndpointSpec.new(:put, ['sights', :sight_id], body_type: :json)
88
+ request_spec = Smartsheet::API::RequestSpec.new(
89
+ params: params,
90
+ header_overrides: header_overrides,
91
+ body: body,
92
+ sight_id: sight_id
93
+ )
94
+ client.make_request(endpoint_spec, request_spec)
95
+ end
96
+ end
97
+ end
@@ -0,0 +1,68 @@
1
+ require 'smartsheet/endpoints/share/share'
2
+
3
+ module Smartsheet
4
+ class SightsShare
5
+ attr_reader :client
6
+ private :client
7
+
8
+ URL = ['sights', :sight_id]
9
+
10
+ def initialize(client)
11
+ @client = client
12
+ end
13
+
14
+ def delete(sight_id:, share_id:, params: {}, header_overrides: {})
15
+ delete_share(
16
+ share_id: share_id,
17
+ url: URL,
18
+ params: params,
19
+ header_overrides: header_overrides,
20
+ sight_id: sight_id
21
+ )
22
+ end
23
+
24
+ def get(sight_id:, share_id:, params: {}, header_overrides: {})
25
+ get_share(
26
+ share_id: share_id,
27
+ url: URL,
28
+ params: params,
29
+ header_overrides: header_overrides,
30
+ sight_id: sight_id
31
+ )
32
+ end
33
+
34
+ def list(sight_id:, params: {}, header_overrides: {})
35
+ list_share(
36
+ url: URL,
37
+ header_overrides: header_overrides,
38
+ params: params,
39
+ sight_id: sight_id
40
+ )
41
+ end
42
+
43
+ def create(sight_id:, body:, params: {}, header_overrides: {})
44
+ create_share(
45
+ url: URL,
46
+ header_overrides: header_overrides,
47
+ params: params,
48
+ body: body,
49
+ sight_id: sight_id
50
+ )
51
+ end
52
+
53
+ def update(sight_id:, share_id:, body:, params: {}, header_overrides: {})
54
+ update_share(
55
+ share_id: share_id,
56
+ url: URL,
57
+ params: params,
58
+ header_overrides: header_overrides,
59
+ body: body,
60
+ sight_id: sight_id
61
+ )
62
+ end
63
+
64
+ private
65
+
66
+ include Smartsheet::Share
67
+ end
68
+ end
@@ -0,0 +1,28 @@
1
+ module Smartsheet
2
+ class Templates
3
+ attr_reader :client
4
+ private :client
5
+
6
+ def initialize(client)
7
+ @client = client
8
+ end
9
+
10
+ def list_public(params: {}, header_overrides: {})
11
+ endpoint_spec = Smartsheet::API::EndpointSpec.new(:get, ['templates', 'public'])
12
+ request_spec = Smartsheet::API::RequestSpec.new(
13
+ header_overrides: header_overrides,
14
+ params: params
15
+ )
16
+ client.make_request(endpoint_spec, request_spec)
17
+ end
18
+
19
+ def list(params: {}, header_overrides: {})
20
+ endpoint_spec = Smartsheet::API::EndpointSpec.new(:get, ['templates'])
21
+ request_spec = Smartsheet::API::RequestSpec.new(
22
+ header_overrides: header_overrides,
23
+ params: params
24
+ )
25
+ client.make_request(endpoint_spec, request_spec)
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,57 @@
1
+ require 'digest'
2
+
3
+ module Smartsheet
4
+ class Token
5
+ attr_reader :client
6
+ private :client
7
+
8
+ def initialize(client)
9
+ @client = client
10
+ end
11
+
12
+ def get(client_id:, hash:, code:, params: {}, header_overrides: {})
13
+ endpoint_spec = Smartsheet::API::EndpointSpec.new(
14
+ :post,
15
+ ['token'],
16
+ no_auth: true
17
+ )
18
+ request_spec = Smartsheet::API::RequestSpec.new(
19
+ header_overrides: header_overrides,
20
+ params: params.merge({
21
+ client_id: client_id,
22
+ code: code,
23
+ hash: hash,
24
+ grant_type: 'authorization_code'
25
+ })
26
+ )
27
+ client.make_request(endpoint_spec, request_spec)
28
+ end
29
+
30
+ def refresh(client_id:, hash:, refresh_token:, params: {}, header_overrides: {})
31
+ endpoint_spec = Smartsheet::API::EndpointSpec.new(
32
+ :post,
33
+ ['token'],
34
+ no_auth: true
35
+ )
36
+ request_spec = Smartsheet::API::RequestSpec.new(
37
+ header_overrides: header_overrides,
38
+ params: params.merge({
39
+ client_id: client_id,
40
+ refresh_token: refresh_token,
41
+ hash: hash,
42
+ grant_type: 'refresh_token'
43
+ })
44
+ )
45
+ client.make_request(endpoint_spec, request_spec)
46
+ end
47
+
48
+ def revoke(params: {}, header_overrides: {})
49
+ endpoint_spec = Smartsheet::API::EndpointSpec.new(:delete, ['token'])
50
+ request_spec = Smartsheet::API::RequestSpec.new(
51
+ header_overrides: header_overrides,
52
+ params: params
53
+ )
54
+ client.make_request(endpoint_spec, request_spec)
55
+ end
56
+ end
57
+ end
@@ -0,0 +1,42 @@
1
+ module Smartsheet
2
+ class SentUpdateRequests
3
+ attr_reader :client
4
+ private :client
5
+
6
+ def initialize(client)
7
+ @client = client
8
+ end
9
+
10
+ def delete(sheet_id:, sent_update_request_id:, params: {}, header_overrides: {})
11
+ endpoint_spec = Smartsheet::API::EndpointSpec.new(:delete, ['sheets', :sheet_id, 'sentupdaterequests', :sent_update_request_id])
12
+ request_spec = Smartsheet::API::RequestSpec.new(
13
+ params: params,
14
+ header_overrides: header_overrides,
15
+ sheet_id: sheet_id,
16
+ sent_update_request_id: sent_update_request_id
17
+ )
18
+ client.make_request(endpoint_spec, request_spec)
19
+ end
20
+
21
+ def get(sheet_id:, sent_update_request_id:, params: {}, header_overrides: {})
22
+ endpoint_spec = Smartsheet::API::EndpointSpec.new(:get, ['sheets', :sheet_id, 'sentupdaterequests', :sent_update_request_id])
23
+ request_spec = Smartsheet::API::RequestSpec.new(
24
+ params: params,
25
+ header_overrides: header_overrides,
26
+ sheet_id: sheet_id,
27
+ sent_update_request_id: sent_update_request_id
28
+ )
29
+ client.make_request(endpoint_spec, request_spec)
30
+ end
31
+
32
+ def list(sheet_id:, params: {}, header_overrides: {})
33
+ endpoint_spec = Smartsheet::API::EndpointSpec.new(:get, ['sheets', :sheet_id, 'sentupdaterequests'])
34
+ request_spec = Smartsheet::API::RequestSpec.new(
35
+ header_overrides: header_overrides,
36
+ params: params,
37
+ sheet_id: sheet_id
38
+ )
39
+ client.make_request(endpoint_spec, request_spec)
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,69 @@
1
+ require 'smartsheet/endpoints/update_requests/sent_update_requests'
2
+
3
+ module Smartsheet
4
+ class UpdateRequests
5
+ attr_reader :client, :sent
6
+ private :client
7
+
8
+ def initialize(client)
9
+ @client = client
10
+
11
+ @sent = SentUpdateRequests.new(client)
12
+ end
13
+
14
+ def create(sheet_id:, body:, params: {}, header_overrides: {})
15
+ endpoint_spec = Smartsheet::API::EndpointSpec.new(:post, ['sheets', :sheet_id, 'updaterequests'], body_type: :json)
16
+ request_spec = Smartsheet::API::RequestSpec.new(
17
+ params: params,
18
+ header_overrides: header_overrides,
19
+ body: body,
20
+ sheet_id: sheet_id
21
+ )
22
+ client.make_request(endpoint_spec, request_spec)
23
+ end
24
+
25
+ def delete(sheet_id:, update_request_id:, params: {}, header_overrides: {})
26
+ endpoint_spec = Smartsheet::API::EndpointSpec.new(:delete, ['sheets', :sheet_id, 'updaterequests', :update_request_id])
27
+ request_spec = Smartsheet::API::RequestSpec.new(
28
+ params: params,
29
+ header_overrides: header_overrides,
30
+ sheet_id: sheet_id,
31
+ update_request_id: update_request_id
32
+ )
33
+ client.make_request(endpoint_spec, request_spec)
34
+ end
35
+
36
+ def get(sheet_id:, update_request_id:, params: {}, header_overrides: {})
37
+ endpoint_spec = Smartsheet::API::EndpointSpec.new(:get, ['sheets', :sheet_id, 'updaterequests', :update_request_id])
38
+ request_spec = Smartsheet::API::RequestSpec.new(
39
+ params: params,
40
+ header_overrides: header_overrides,
41
+ sheet_id: sheet_id,
42
+ update_request_id: update_request_id
43
+ )
44
+ client.make_request(endpoint_spec, request_spec)
45
+ end
46
+
47
+ def list(sheet_id:, params: {}, header_overrides: {})
48
+ endpoint_spec = Smartsheet::API::EndpointSpec.new(:get, ['sheets', :sheet_id, 'updaterequests'])
49
+ request_spec = Smartsheet::API::RequestSpec.new(
50
+ header_overrides: header_overrides,
51
+ params: params,
52
+ sheet_id: sheet_id
53
+ )
54
+ client.make_request(endpoint_spec, request_spec)
55
+ end
56
+
57
+ def update(sheet_id:, update_request_id:, body:, params: {}, header_overrides: {})
58
+ endpoint_spec = Smartsheet::API::EndpointSpec.new(:put, ['sheets', :sheet_id, 'updaterequests', :update_request_id], body_type: :json)
59
+ request_spec = Smartsheet::API::RequestSpec.new(
60
+ params: params,
61
+ header_overrides: header_overrides,
62
+ body: body,
63
+ sheet_id: sheet_id,
64
+ update_request_id: update_request_id
65
+ )
66
+ client.make_request(endpoint_spec, request_spec)
67
+ end
68
+ end
69
+ end
@@ -0,0 +1,77 @@
1
+ module Smartsheet
2
+ class AlternateEmails
3
+ attr_reader :client
4
+ private :client
5
+
6
+ def initialize(client)
7
+ @client = client
8
+ end
9
+
10
+ def add(user_id:, body:, params: {}, header_overrides: {})
11
+ endpoint_spec = Smartsheet::API::EndpointSpec.new(
12
+ :post,
13
+ ['users', :user_id, 'alternateemails'],
14
+ body_type: :json
15
+ )
16
+ request_spec = Smartsheet::API::RequestSpec.new(
17
+ params: params,
18
+ header_overrides: header_overrides,
19
+ body: body,
20
+ user_id: user_id
21
+ )
22
+ client.make_request(endpoint_spec, request_spec)
23
+ end
24
+
25
+ def make_primary(user_id:, alternate_email_id:, params: {}, header_overrides: {})
26
+ endpoint_spec = Smartsheet::API::EndpointSpec.new(
27
+ :post,
28
+ ['users', :user_id, 'alternateemails', :alternate_email_id, 'makeprimary']
29
+ )
30
+ request_spec = Smartsheet::API::RequestSpec.new(
31
+ params: params,
32
+ header_overrides: header_overrides,
33
+ alternate_email_id: alternate_email_id,
34
+ user_id: user_id
35
+ )
36
+ client.make_request(endpoint_spec, request_spec)
37
+ end
38
+
39
+ def delete(user_id:, alternate_email_id:, params: {}, header_overrides: {})
40
+ endpoint_spec = Smartsheet::API::EndpointSpec.new(
41
+ :delete,
42
+ ['users', :user_id, 'alternateemails', :alternate_email_id]
43
+ )
44
+ request_spec = Smartsheet::API::RequestSpec.new(
45
+ params: params,
46
+ header_overrides: header_overrides,
47
+ alternate_email_id: alternate_email_id,
48
+ user_id: user_id
49
+ )
50
+ client.make_request(endpoint_spec, request_spec)
51
+ end
52
+
53
+ def get(user_id:, alternate_email_id:, params: {}, header_overrides: {})
54
+ endpoint_spec = Smartsheet::API::EndpointSpec.new(
55
+ :get,
56
+ ['users', :user_id, 'alternateemails', :alternate_email_id]
57
+ )
58
+ request_spec = Smartsheet::API::RequestSpec.new(
59
+ params: params,
60
+ header_overrides: header_overrides,
61
+ alternate_email_id: alternate_email_id,
62
+ user_id: user_id
63
+ )
64
+ client.make_request(endpoint_spec, request_spec)
65
+ end
66
+
67
+ def list(user_id:, params: {}, header_overrides: {})
68
+ endpoint_spec = Smartsheet::API::EndpointSpec.new(:get, ['users', :user_id, 'alternateemails'])
69
+ request_spec = Smartsheet::API::RequestSpec.new(
70
+ params: params,
71
+ header_overrides: header_overrides,
72
+ user_id: user_id
73
+ )
74
+ client.make_request(endpoint_spec, request_spec)
75
+ end
76
+ end
77
+ end