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,102 +1,102 @@
1
- require_relative 'sights_share'
2
-
3
- module Smartsheet
4
- # Sights Endpoints
5
- # @see https://smartsheet-platform.github.io/api-docs/?ruby#sights API Sights Docs
6
- #
7
- # @!attribute [r] share
8
- # @return [SightsShare]
9
- class Sights
10
- attr_reader :client, :share
11
- private :client
12
-
13
- def initialize(client)
14
- @client = client
15
-
16
- @share = SightsShare.new(client)
17
- end
18
-
19
- def copy(sight_id:, body:, params: {}, header_overrides: {})
20
- endpoint_spec = Smartsheet::API::EndpointSpec.new(:post, ['sights', :sight_id, 'copy'], body_type: :json)
21
- request_spec = Smartsheet::API::RequestSpec.new(
22
- header_overrides: header_overrides,
23
- params: params,
24
- body: body,
25
- sight_id: sight_id
26
- )
27
- client.make_request(endpoint_spec, request_spec)
28
- end
29
-
30
- def delete(sight_id:, params: {}, header_overrides: {})
31
- endpoint_spec = Smartsheet::API::EndpointSpec.new(:delete, ['sights', :sight_id])
32
- request_spec = Smartsheet::API::RequestSpec.new(
33
- params: params,
34
- header_overrides: header_overrides,
35
- sight_id: sight_id
36
- )
37
- client.make_request(endpoint_spec, request_spec)
38
- end
39
-
40
- def get(sight_id:, params: {}, header_overrides: {})
41
- endpoint_spec = Smartsheet::API::EndpointSpec.new(:get, ['sights', :sight_id])
42
- request_spec = Smartsheet::API::RequestSpec.new(
43
- params: params,
44
- header_overrides: header_overrides,
45
- sight_id: sight_id
46
- )
47
- client.make_request(endpoint_spec, request_spec)
48
- end
49
-
50
- def list(params: {}, header_overrides: {})
51
- endpoint_spec = Smartsheet::API::EndpointSpec.new(:get, ['sights'])
52
- request_spec = Smartsheet::API::RequestSpec.new(
53
- header_overrides: header_overrides,
54
- params: params
55
- )
56
- client.make_request(endpoint_spec, request_spec)
57
- end
58
-
59
- def move(sight_id:, body:, params: {}, header_overrides: {})
60
- endpoint_spec = Smartsheet::API::EndpointSpec.new(:post, ['sights', :sight_id, 'move'], body_type: :json)
61
- request_spec = Smartsheet::API::RequestSpec.new(
62
- params: params,
63
- header_overrides: header_overrides,
64
- body: body,
65
- sight_id: sight_id
66
- )
67
- client.make_request(endpoint_spec, request_spec)
68
- end
69
-
70
- def get_publish_status(sight_id:, params: {}, header_overrides: {})
71
- endpoint_spec = Smartsheet::API::EndpointSpec.new(:get, ['sights', :sight_id, 'publish'])
72
- request_spec = Smartsheet::API::RequestSpec.new(
73
- params: params,
74
- header_overrides: header_overrides,
75
- sight_id: sight_id
76
- )
77
- client.make_request(endpoint_spec, request_spec)
78
- end
79
-
80
- def set_publish_status(sight_id:, body:, params: {}, header_overrides: {})
81
- endpoint_spec = Smartsheet::API::EndpointSpec.new(:put, ['sights', :sight_id, 'publish'], body_type: :json)
82
- request_spec = Smartsheet::API::RequestSpec.new(
83
- params: params,
84
- header_overrides: header_overrides,
85
- body: body,
86
- sight_id: sight_id
87
- )
88
- client.make_request(endpoint_spec, request_spec)
89
- end
90
-
91
- def update(sight_id:, body:, params: {}, header_overrides: {})
92
- endpoint_spec = Smartsheet::API::EndpointSpec.new(:put, ['sights', :sight_id], body_type: :json)
93
- request_spec = Smartsheet::API::RequestSpec.new(
94
- params: params,
95
- header_overrides: header_overrides,
96
- body: body,
97
- sight_id: sight_id
98
- )
99
- client.make_request(endpoint_spec, request_spec)
100
- end
101
- end
1
+ require_relative 'sights_share'
2
+
3
+ module Smartsheet
4
+ # Sights Endpoints
5
+ # @see https://smartsheet-platform.github.io/api-docs/?ruby#sights API Sights Docs
6
+ #
7
+ # @!attribute [r] share
8
+ # @return [SightsShare]
9
+ class Sights
10
+ attr_reader :client, :share
11
+ private :client
12
+
13
+ def initialize(client)
14
+ @client = client
15
+
16
+ @share = SightsShare.new(client)
17
+ end
18
+
19
+ def copy(sight_id:, body:, params: {}, header_overrides: {})
20
+ endpoint_spec = Smartsheet::API::EndpointSpec.new(:post, ['sights', :sight_id, 'copy'], body_type: :json)
21
+ request_spec = Smartsheet::API::RequestSpec.new(
22
+ header_overrides: header_overrides,
23
+ params: params,
24
+ body: body,
25
+ sight_id: sight_id
26
+ )
27
+ client.make_request(endpoint_spec, request_spec)
28
+ end
29
+
30
+ def delete(sight_id:, params: {}, header_overrides: {})
31
+ endpoint_spec = Smartsheet::API::EndpointSpec.new(:delete, ['sights', :sight_id])
32
+ request_spec = Smartsheet::API::RequestSpec.new(
33
+ params: params,
34
+ header_overrides: header_overrides,
35
+ sight_id: sight_id
36
+ )
37
+ client.make_request(endpoint_spec, request_spec)
38
+ end
39
+
40
+ def get(sight_id:, params: {}, header_overrides: {})
41
+ endpoint_spec = Smartsheet::API::EndpointSpec.new(:get, ['sights', :sight_id])
42
+ request_spec = Smartsheet::API::RequestSpec.new(
43
+ params: params,
44
+ header_overrides: header_overrides,
45
+ sight_id: sight_id
46
+ )
47
+ client.make_request(endpoint_spec, request_spec)
48
+ end
49
+
50
+ def list(params: {}, header_overrides: {})
51
+ endpoint_spec = Smartsheet::API::EndpointSpec.new(:get, ['sights'])
52
+ request_spec = Smartsheet::API::RequestSpec.new(
53
+ header_overrides: header_overrides,
54
+ params: params
55
+ )
56
+ client.make_request(endpoint_spec, request_spec)
57
+ end
58
+
59
+ def move(sight_id:, body:, params: {}, header_overrides: {})
60
+ endpoint_spec = Smartsheet::API::EndpointSpec.new(:post, ['sights', :sight_id, 'move'], body_type: :json)
61
+ request_spec = Smartsheet::API::RequestSpec.new(
62
+ params: params,
63
+ header_overrides: header_overrides,
64
+ body: body,
65
+ sight_id: sight_id
66
+ )
67
+ client.make_request(endpoint_spec, request_spec)
68
+ end
69
+
70
+ def get_publish_status(sight_id:, params: {}, header_overrides: {})
71
+ endpoint_spec = Smartsheet::API::EndpointSpec.new(:get, ['sights', :sight_id, 'publish'])
72
+ request_spec = Smartsheet::API::RequestSpec.new(
73
+ params: params,
74
+ header_overrides: header_overrides,
75
+ sight_id: sight_id
76
+ )
77
+ client.make_request(endpoint_spec, request_spec)
78
+ end
79
+
80
+ def set_publish_status(sight_id:, body:, params: {}, header_overrides: {})
81
+ endpoint_spec = Smartsheet::API::EndpointSpec.new(:put, ['sights', :sight_id, 'publish'], body_type: :json)
82
+ request_spec = Smartsheet::API::RequestSpec.new(
83
+ params: params,
84
+ header_overrides: header_overrides,
85
+ body: body,
86
+ sight_id: sight_id
87
+ )
88
+ client.make_request(endpoint_spec, request_spec)
89
+ end
90
+
91
+ def update(sight_id:, body:, params: {}, header_overrides: {})
92
+ endpoint_spec = Smartsheet::API::EndpointSpec.new(:put, ['sights', :sight_id], body_type: :json)
93
+ request_spec = Smartsheet::API::RequestSpec.new(
94
+ params: params,
95
+ header_overrides: header_overrides,
96
+ body: body,
97
+ sight_id: sight_id
98
+ )
99
+ client.make_request(endpoint_spec, request_spec)
100
+ end
101
+ end
102
102
  end
@@ -1,70 +1,70 @@
1
- require 'smartsheet/endpoints/share/share'
2
-
3
- module Smartsheet
4
- # Sight Sharing Endpoints
5
- # @see https://smartsheet-platform.github.io/api-docs/?ruby#sight-sharing API Sight Sharing Docs
6
- class SightsShare
7
- attr_reader :client
8
- private :client
9
-
10
- URL = ['sights', :sight_id]
11
-
12
- def initialize(client)
13
- @client = client
14
- end
15
-
16
- def delete(sight_id:, share_id:, params: {}, header_overrides: {})
17
- delete_share(
18
- share_id: share_id,
19
- url: URL,
20
- params: params,
21
- header_overrides: header_overrides,
22
- sight_id: sight_id
23
- )
24
- end
25
-
26
- def get(sight_id:, share_id:, params: {}, header_overrides: {})
27
- get_share(
28
- share_id: share_id,
29
- url: URL,
30
- params: params,
31
- header_overrides: header_overrides,
32
- sight_id: sight_id
33
- )
34
- end
35
-
36
- def list(sight_id:, params: {}, header_overrides: {})
37
- list_share(
38
- url: URL,
39
- header_overrides: header_overrides,
40
- params: params,
41
- sight_id: sight_id
42
- )
43
- end
44
-
45
- def create(sight_id:, body:, params: {}, header_overrides: {})
46
- create_share(
47
- url: URL,
48
- header_overrides: header_overrides,
49
- params: params,
50
- body: body,
51
- sight_id: sight_id
52
- )
53
- end
54
-
55
- def update(sight_id:, share_id:, body:, params: {}, header_overrides: {})
56
- update_share(
57
- share_id: share_id,
58
- url: URL,
59
- params: params,
60
- header_overrides: header_overrides,
61
- body: body,
62
- sight_id: sight_id
63
- )
64
- end
65
-
66
- private
67
-
68
- include Smartsheet::Share
69
- end
1
+ require 'smartsheet/endpoints/share/share'
2
+
3
+ module Smartsheet
4
+ # Sight Sharing Endpoints
5
+ # @see https://smartsheet-platform.github.io/api-docs/?ruby#sight-sharing API Sight Sharing Docs
6
+ class SightsShare
7
+ attr_reader :client
8
+ private :client
9
+
10
+ URL = ['sights', :sight_id]
11
+
12
+ def initialize(client)
13
+ @client = client
14
+ end
15
+
16
+ def delete(sight_id:, share_id:, params: {}, header_overrides: {})
17
+ delete_share(
18
+ share_id: share_id,
19
+ url: URL,
20
+ params: params,
21
+ header_overrides: header_overrides,
22
+ sight_id: sight_id
23
+ )
24
+ end
25
+
26
+ def get(sight_id:, share_id:, params: {}, header_overrides: {})
27
+ get_share(
28
+ share_id: share_id,
29
+ url: URL,
30
+ params: params,
31
+ header_overrides: header_overrides,
32
+ sight_id: sight_id
33
+ )
34
+ end
35
+
36
+ def list(sight_id:, params: {}, header_overrides: {})
37
+ list_share(
38
+ url: URL,
39
+ header_overrides: header_overrides,
40
+ params: params,
41
+ sight_id: sight_id
42
+ )
43
+ end
44
+
45
+ def create(sight_id:, body:, params: {}, header_overrides: {})
46
+ create_share(
47
+ url: URL,
48
+ header_overrides: header_overrides,
49
+ params: params,
50
+ body: body,
51
+ sight_id: sight_id
52
+ )
53
+ end
54
+
55
+ def update(sight_id:, share_id:, body:, params: {}, header_overrides: {})
56
+ update_share(
57
+ share_id: share_id,
58
+ url: URL,
59
+ params: params,
60
+ header_overrides: header_overrides,
61
+ body: body,
62
+ sight_id: sight_id
63
+ )
64
+ end
65
+
66
+ private
67
+
68
+ include Smartsheet::Share
69
+ end
70
70
  end
@@ -1,30 +1,30 @@
1
- module Smartsheet
2
- # Templates Endpoints
3
- # @see https://smartsheet-platform.github.io/api-docs/?ruby#templates API Templates Docs
4
- class Templates
5
- attr_reader :client
6
- private :client
7
-
8
- def initialize(client)
9
- @client = client
10
- end
11
-
12
- def list_public(params: {}, header_overrides: {})
13
- endpoint_spec = Smartsheet::API::EndpointSpec.new(:get, ['templates', 'public'])
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
-
21
- def list(params: {}, header_overrides: {})
22
- endpoint_spec = Smartsheet::API::EndpointSpec.new(:get, ['templates'])
23
- request_spec = Smartsheet::API::RequestSpec.new(
24
- header_overrides: header_overrides,
25
- params: params
26
- )
27
- client.make_request(endpoint_spec, request_spec)
28
- end
29
- end
1
+ module Smartsheet
2
+ # Templates Endpoints
3
+ # @see https://smartsheet-platform.github.io/api-docs/?ruby#templates API Templates Docs
4
+ class Templates
5
+ attr_reader :client
6
+ private :client
7
+
8
+ def initialize(client)
9
+ @client = client
10
+ end
11
+
12
+ def list_public(params: {}, header_overrides: {})
13
+ endpoint_spec = Smartsheet::API::EndpointSpec.new(:get, ['templates', 'public'])
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
+
21
+ def list(params: {}, header_overrides: {})
22
+ endpoint_spec = Smartsheet::API::EndpointSpec.new(:get, ['templates'])
23
+ request_spec = Smartsheet::API::RequestSpec.new(
24
+ header_overrides: header_overrides,
25
+ params: params
26
+ )
27
+ client.make_request(endpoint_spec, request_spec)
28
+ end
29
+ end
30
30
  end
@@ -1,61 +1,66 @@
1
- require 'digest'
2
-
3
- module Smartsheet
4
- # Token Endpoints
5
- #
6
- # {#get} and {#refresh} do not require an existing token to call
7
- # @see https://smartsheet-platform.github.io/api-docs/?ruby#token API Token Docs
8
- class Token
9
- attr_reader :client
10
- private :client
11
-
12
- def initialize(client)
13
- @client = client
14
- end
15
-
16
- def get(client_id:, hash:, code:, params: {}, header_overrides: {})
17
- endpoint_spec = Smartsheet::API::EndpointSpec.new(
18
- :post,
19
- ['token'],
20
- no_auth: true
21
- )
22
- request_spec = Smartsheet::API::RequestSpec.new(
23
- header_overrides: header_overrides,
24
- params: params.merge({
25
- client_id: client_id,
26
- code: code,
27
- hash: hash,
28
- grant_type: 'authorization_code'
29
- })
30
- )
31
- client.make_request(endpoint_spec, request_spec)
32
- end
33
-
34
- def refresh(client_id:, hash:, refresh_token:, params: {}, header_overrides: {})
35
- endpoint_spec = Smartsheet::API::EndpointSpec.new(
36
- :post,
37
- ['token'],
38
- no_auth: true
39
- )
40
- request_spec = Smartsheet::API::RequestSpec.new(
41
- header_overrides: header_overrides,
42
- params: params.merge({
43
- client_id: client_id,
44
- refresh_token: refresh_token,
45
- hash: hash,
46
- grant_type: 'refresh_token'
47
- })
48
- )
49
- client.make_request(endpoint_spec, request_spec)
50
- end
51
-
52
- def revoke(params: {}, header_overrides: {})
53
- endpoint_spec = Smartsheet::API::EndpointSpec.new(:delete, ['token'])
54
- request_spec = Smartsheet::API::RequestSpec.new(
55
- header_overrides: header_overrides,
56
- params: params
57
- )
58
- client.make_request(endpoint_spec, request_spec)
59
- end
60
- end
1
+ require 'digest'
2
+
3
+ module Smartsheet
4
+ # Token Endpoints
5
+ #
6
+ # {#get} and {#refresh} do not require an existing token to call
7
+ # @see https://smartsheet-platform.github.io/api-docs/?ruby#token API Token Docs
8
+ class Token
9
+ attr_reader :client
10
+ private :client
11
+
12
+ def initialize(client)
13
+ @client = client
14
+ end
15
+
16
+ def build_authorization_url(client_id:, scopes:)
17
+ scopes_string = scopes.join('%20')
18
+ "https://app.smartsheet.com/b/authorize?response_type=code&client_id=#{client_id}&scope=#{scopes_string}"
19
+ end
20
+
21
+ def get(client_id:, hash:, code:, params: {}, header_overrides: {})
22
+ endpoint_spec = Smartsheet::API::EndpointSpec.new(
23
+ :post,
24
+ ['token'],
25
+ no_auth: true
26
+ )
27
+ request_spec = Smartsheet::API::RequestSpec.new(
28
+ header_overrides: header_overrides,
29
+ params: params.merge({
30
+ client_id: client_id,
31
+ code: code,
32
+ hash: hash,
33
+ grant_type: 'authorization_code'
34
+ })
35
+ )
36
+ client.make_request(endpoint_spec, request_spec)
37
+ end
38
+
39
+ def refresh(client_id:, hash:, refresh_token:, params: {}, header_overrides: {})
40
+ endpoint_spec = Smartsheet::API::EndpointSpec.new(
41
+ :post,
42
+ ['token'],
43
+ no_auth: true
44
+ )
45
+ request_spec = Smartsheet::API::RequestSpec.new(
46
+ header_overrides: header_overrides,
47
+ params: params.merge({
48
+ client_id: client_id,
49
+ refresh_token: refresh_token,
50
+ hash: hash,
51
+ grant_type: 'refresh_token'
52
+ })
53
+ )
54
+ client.make_request(endpoint_spec, request_spec)
55
+ end
56
+
57
+ def revoke(params: {}, header_overrides: {})
58
+ endpoint_spec = Smartsheet::API::EndpointSpec.new(:delete, ['token'])
59
+ request_spec = Smartsheet::API::RequestSpec.new(
60
+ header_overrides: header_overrides,
61
+ params: params
62
+ )
63
+ client.make_request(endpoint_spec, request_spec)
64
+ end
65
+ end
61
66
  end