@seamapi/nextlove-sdk-generator 1.13.0 → 1.13.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 (68) hide show
  1. package/lib/generate-ruby-sdk/generate-ruby-sdk.js +19 -60
  2. package/lib/generate-ruby-sdk/generate-ruby-sdk.js.map +1 -1
  3. package/lib/generate-ruby-sdk/lib/get-entity-imports-template.d.ts +1 -0
  4. package/lib/generate-ruby-sdk/lib/get-entity-imports-template.js +17 -0
  5. package/lib/generate-ruby-sdk/lib/get-entity-imports-template.js.map +1 -0
  6. package/package.json +1 -1
  7. package/src/lib/generate-ruby-sdk/generate-ruby-sdk.ts +23 -63
  8. package/src/lib/generate-ruby-sdk/lib/get-entity-imports-template.ts +20 -0
  9. package/lib/generate-ruby-sdk/templates/.rspec.template.d.ts +0 -2
  10. package/lib/generate-ruby-sdk/templates/.rspec.template.js +0 -4
  11. package/lib/generate-ruby-sdk/templates/.rspec.template.js.map +0 -1
  12. package/lib/generate-ruby-sdk/templates/.ruby-version.template.d.ts +0 -2
  13. package/lib/generate-ruby-sdk/templates/.ruby-version.template.js +0 -2
  14. package/lib/generate-ruby-sdk/templates/.ruby-version.template.js.map +0 -1
  15. package/lib/generate-ruby-sdk/templates/base_client.rb.template.d.ts +0 -2
  16. package/lib/generate-ruby-sdk/templates/base_client.rb.template.js +0 -22
  17. package/lib/generate-ruby-sdk/templates/base_client.rb.template.js.map +0 -1
  18. package/lib/generate-ruby-sdk/templates/base_resource.rb.template.d.ts +0 -2
  19. package/lib/generate-ruby-sdk/templates/base_resource.rb.template.js +0 -59
  20. package/lib/generate-ruby-sdk/templates/base_resource.rb.template.js.map +0 -1
  21. package/lib/generate-ruby-sdk/templates/client.rb.template.d.ts +0 -2
  22. package/lib/generate-ruby-sdk/templates/client.rb.template.js +0 -79
  23. package/lib/generate-ruby-sdk/templates/client.rb.template.js.map +0 -1
  24. package/lib/generate-ruby-sdk/templates/gemfile.template.d.ts +0 -2
  25. package/lib/generate-ruby-sdk/templates/gemfile.template.js +0 -7
  26. package/lib/generate-ruby-sdk/templates/gemfile.template.js.map +0 -1
  27. package/lib/generate-ruby-sdk/templates/logger.rb.template.d.ts +0 -2
  28. package/lib/generate-ruby-sdk/templates/logger.rb.template.js +0 -13
  29. package/lib/generate-ruby-sdk/templates/logger.rb.template.js.map +0 -1
  30. package/lib/generate-ruby-sdk/templates/lts_version.rb.template.d.ts +0 -2
  31. package/lib/generate-ruby-sdk/templates/lts_version.rb.template.js +0 -6
  32. package/lib/generate-ruby-sdk/templates/lts_version.rb.template.js.map +0 -1
  33. package/lib/generate-ruby-sdk/templates/rakefile.template.d.ts +0 -2
  34. package/lib/generate-ruby-sdk/templates/rakefile.template.js +0 -23
  35. package/lib/generate-ruby-sdk/templates/rakefile.template.js.map +0 -1
  36. package/lib/generate-ruby-sdk/templates/readme.md.template.d.ts +0 -2
  37. package/lib/generate-ruby-sdk/templates/readme.md.template.js +0 -184
  38. package/lib/generate-ruby-sdk/templates/readme.md.template.js.map +0 -1
  39. package/lib/generate-ruby-sdk/templates/request.rb.template.d.ts +0 -2
  40. package/lib/generate-ruby-sdk/templates/request.rb.template.js +0 -74
  41. package/lib/generate-ruby-sdk/templates/request.rb.template.js.map +0 -1
  42. package/lib/generate-ruby-sdk/templates/seamapi.gemspec.template.d.ts +0 -2
  43. package/lib/generate-ruby-sdk/templates/seamapi.gemspec.template.js +0 -41
  44. package/lib/generate-ruby-sdk/templates/seamapi.gemspec.template.js.map +0 -1
  45. package/lib/generate-ruby-sdk/templates/spec_helper.rb.template.d.ts +0 -2
  46. package/lib/generate-ruby-sdk/templates/spec_helper.rb.template.js +0 -29
  47. package/lib/generate-ruby-sdk/templates/spec_helper.rb.template.js.map +0 -1
  48. package/lib/generate-ruby-sdk/templates/support-helpers.rb.template.d.ts +0 -2
  49. package/lib/generate-ruby-sdk/templates/support-helpers.rb.template.js +0 -12
  50. package/lib/generate-ruby-sdk/templates/support-helpers.rb.template.js.map +0 -1
  51. package/lib/generate-ruby-sdk/templates/version.rb.template.d.ts +0 -2
  52. package/lib/generate-ruby-sdk/templates/version.rb.template.js +0 -6
  53. package/lib/generate-ruby-sdk/templates/version.rb.template.js.map +0 -1
  54. package/src/lib/generate-ruby-sdk/templates/.rspec.template.ts +0 -3
  55. package/src/lib/generate-ruby-sdk/templates/.ruby-version.template.ts +0 -1
  56. package/src/lib/generate-ruby-sdk/templates/base_client.rb.template.ts +0 -21
  57. package/src/lib/generate-ruby-sdk/templates/base_resource.rb.template.ts +0 -58
  58. package/src/lib/generate-ruby-sdk/templates/client.rb.template.ts +0 -80
  59. package/src/lib/generate-ruby-sdk/templates/gemfile.template.ts +0 -6
  60. package/src/lib/generate-ruby-sdk/templates/logger.rb.template.ts +0 -12
  61. package/src/lib/generate-ruby-sdk/templates/lts_version.rb.template.ts +0 -5
  62. package/src/lib/generate-ruby-sdk/templates/rakefile.template.ts +0 -22
  63. package/src/lib/generate-ruby-sdk/templates/readme.md.template.ts +0 -183
  64. package/src/lib/generate-ruby-sdk/templates/request.rb.template.ts +0 -73
  65. package/src/lib/generate-ruby-sdk/templates/seamapi.gemspec.template.ts +0 -40
  66. package/src/lib/generate-ruby-sdk/templates/spec_helper.rb.template.ts +0 -28
  67. package/src/lib/generate-ruby-sdk/templates/support-helpers.rb.template.ts +0 -11
  68. package/src/lib/generate-ruby-sdk/templates/version.rb.template.ts +0 -5
@@ -1 +0,0 @@
1
- {"version":3,"file":"rakefile.template.js","sourceRoot":"","sources":["../../../src/lib/generate-ruby-sdk/templates/rakefile.template.ts"],"names":[],"mappings":"AAAA,eAAe,GAAG,EAAE,CAAC;;;;;;;;;;;;;;;;;;;;;MAqBf,CAAA"}
@@ -1,2 +0,0 @@
1
- declare const _default: () => string;
2
- export default _default;
@@ -1,184 +0,0 @@
1
- export default () => `# Seam API Ruby SDK
2
-
3
- [![RubyGems.org](https://img.shields.io/gem/v/seamapi)](https://rubygems.org/gems/seamapi)
4
- [![GitHub Actions](https://github.com/seamapi/ruby/workflows/main/badge.svg)](https://github.com/seamapi/ruby/actions)
5
- [![Docs](https://img.shields.io/badge/docs-latest-blue)](https://docs.seam.co/)
6
-
7
- Official interface to the [Seam Connect API].
8
-
9
- [Seam Connect API]: https://docs.seam.co/
10
-
11
- ## Description
12
-
13
- This SDK provides convenient access to the [Seam Connect API] for Ruby applications.
14
-
15
- This library includes:
16
-
17
- - A predefined set of classes for API resources that
18
- initialize themselves dynamically from API responses.
19
- - Methods for all [Seam API endpoints](https://docs.seam.co/latest/api-clients/overview).
20
- - Simplified asynchronous flows, e.g., listening for events or actions to finish.
21
-
22
- [Seam API endpoints]: https://docs.seam.co/latest/api-endpoints/overview
23
-
24
- ## Installation
25
-
26
- Add this as a dependency to your project using [Bundler] with
27
-
28
- \`\`\`
29
- $ bundle add seamapi
30
- \`\`\`
31
-
32
- [bundler]: https://bundler.io/
33
-
34
- ## Usage
35
-
36
- _Refer to the [Seam Connect API documentation][Seam Connect API]._
37
-
38
- ### Requirements
39
-
40
- - Ruby version 3 or later.
41
- - An API Key generated via the [Seam Dashboard].
42
-
43
- [Seam Dashboard]: https://dashboard.getseam.com
44
-
45
- ### Example
46
-
47
- \`\`\`ruby
48
- seam = Seam::Client.new(api_key: "MY_SEAM_API_KEY")
49
- devices = seam.devices.list
50
- my_door = devices.first
51
- seam.locks.unlock(my_door).wait_until_finished
52
- \`\`\`
53
-
54
- ## Development and Testing
55
-
56
- ### Quickstart
57
-
58
- \`\`\`
59
- $ git clone https://github.com/seamapi/ruby.git
60
- $ cd ruby
61
- $ bundle install
62
- \`\`\`
63
-
64
- Run the command below
65
-
66
- \`\`\`
67
- $ bundle exec rake
68
- \`\`\`
69
-
70
- Open an interactive ruby console with
71
-
72
- \`\`\`
73
- $ bundle exec rake
74
- \`\`\`
75
-
76
- Primary development tasks are defined as [rake] tasks in the \`Rakefile\`
77
- and available via \`rake\`.
78
- View them with
79
-
80
- \`\`\`
81
- $ bundle exec rake -T
82
- \`\`\`
83
-
84
- [rake]: https://ruby.github.io/rake/
85
-
86
- ### Interactive Console
87
-
88
- Play around with this module inside an interactive console with
89
-
90
- \`\`\`
91
- $ rake console
92
- \`\`\`
93
-
94
- Use a sandbox API key to play with the SDK without touching real devices.
95
-
96
- ### Source code
97
-
98
- The [source code] is hosted on GitHub.
99
- Clone the project with
100
-
101
- \`\`\`
102
- $ git clone git@github.com:seamapi/ruby.git
103
- \`\`\`
104
-
105
- [source code]: https://github.com/seamapi/ruby
106
-
107
- ### Requirements
108
-
109
- You will need [Ruby] with [Bundler].
110
-
111
- Be sure that all commands run under the correct Ruby version, e.g.,
112
- if using [rbenv], install the correct version with
113
-
114
- \`\`\`
115
- $ rbenv install
116
- \`\`\`
117
-
118
- Install the development dependencies with
119
-
120
- \`\`\`
121
- $ bundle install
122
- \`\`\`
123
-
124
- [bundler]: https://bundler.io/
125
- [ruby]: https://www.ruby-lang.org/
126
- [rbenv]: https://github.com/rbenv/rbenv
127
-
128
- ### Publishing
129
-
130
- Releases are handled automatically by [semantic-release].
131
- Publishing may be triggered manually using a [workflow_dispatch on GitHub Actions].
132
-
133
- [semantic-release]: https://semantic-release.gitbook.io/
134
- [workflow_dispatch on github actions]: https://github.com/seamapi/ruby/actions?query=workflow%3Aversion
135
-
136
- ## GitHub Actions
137
-
138
- _GitHub Actions should already be configured: this section is for reference only._
139
-
140
- The following repository secrets must be set on [GitHub Actions]:
141
-
142
- - \`RUBYGEMS_API_KEY\`: RubyGems.org token for publishing packages.
143
- - \`GH_TOKEN\`: A personal access token for the user.
144
- - \`GIT_USER_NAME\`: The GitHub user's real name.
145
- - \`GIT_USER_EMAIL\`: The GitHub user's email.
146
- - \`GPG_PRIVATE_KEY\`: The GitHub user's [GPG private key].
147
- - \`GPG_PASSPHRASE\`: The GitHub user's GPG passphrase.
148
-
149
- These are set at the organization level.
150
-
151
- [github actions]: https://github.com/features/actions
152
- [gpg private key]: https://github.com/marketplace/actions/import-gpg#prerequisites
153
-
154
- ## Contributing
155
-
156
- Please submit and comment on bug reports and feature requests.
157
-
158
- To submit a patch:
159
-
160
- 1. Fork it (https://github.com/seamapi/ruby/fork).
161
- 2. Create your feature branch (\`git checkout -b my-new-feature\`).
162
- 3. Make changes.
163
- 4. Commit your changes (\`git commit -am 'Add some feature'\`).
164
- 5. Push to the branch (\`git push origin my-new-feature\`).
165
- 6. Create a new Pull Request.
166
-
167
- ## License
168
-
169
- This Ruby gem is licensed under the MIT license.
170
-
171
- ## Warranty
172
-
173
- This software is provided by the copyright holders and contributors "as is" and
174
- any express or implied warranties, including, but not limited to, the implied
175
- warranties of merchantability and fitness for a particular purpose are
176
- disclaimed. In no event shall the copyright holder or contributors be liable for
177
- any direct, indirect, incidental, special, exemplary, or consequential damages
178
- (including, but not limited to, procurement of substitute goods or services;
179
- loss of use, data, or profits; or business interruption) however caused and on
180
- any theory of liability, whether in contract, strict liability, or tort
181
- (including negligence or otherwise) arising in any way out of the use of this
182
- software, even if advised of the possibility of such damage.
183
- `;
184
- //# sourceMappingURL=readme.md.template.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"readme.md.template.js","sourceRoot":"","sources":["../../../src/lib/generate-ruby-sdk/templates/readme.md.template.ts"],"names":[],"mappings":"AAAA,eAAe,GAAG,EAAE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsLpB,CAAA"}
@@ -1,2 +0,0 @@
1
- declare const _default: () => string;
2
- export default _default;
@@ -1,74 +0,0 @@
1
- export default () => `# frozen_string_literal: true
2
-
3
- require "http"
4
-
5
- module Seam
6
- class Request
7
- attr_reader :base_uri, :api_key, :debug
8
-
9
- class Error < StandardError
10
- attr_reader :status, :response
11
-
12
- def initialize(message, status, response)
13
- super(message)
14
- @status = status
15
- @response = response
16
- end
17
- end
18
-
19
- def initialize(api_key:, base_uri:, debug: false)
20
- @api_key = api_key
21
- @base_uri = base_uri
22
- @debug = debug
23
- end
24
-
25
- def perform(method, uri, config = {})
26
- Logger.info("Request: #{method} #{uri} #{config}") if debug
27
-
28
- config[:body] = config[:body].to_json if config[:body]
29
-
30
- response = HTTP.request(
31
- method,
32
- build_url(uri),
33
- {headers: headers}.merge(config)
34
- )
35
-
36
- return response.parse if response.status.success?
37
-
38
- handle_error_response(response, method, uri)
39
- end
40
-
41
- protected
42
-
43
- def handle_error_response(response, method, uri)
44
- msg = "Api Error #{response.status.code} #{method} #{uri}"
45
- code = response.status.code
46
-
47
- if code >= 400 && code < 500 && (err = response.parse["error"])
48
- msg = "Api Error #{err["type"]}\\nrequest_id: #{err["request_id"]}\\n#{err["message"]}"
49
- end
50
-
51
- raise Error.new(msg, code, response)
52
- end
53
-
54
- def build_url(uri)
55
- "#{base_uri}#{uri}"
56
- end
57
-
58
- def headers
59
- {
60
- "User-Agent" => user_agent,
61
- "Content-Type" => "application/json",
62
- "Authorization" => "Bearer #{api_key}",
63
- "seam-sdk-name": "seamapi/ruby",
64
- "seam-sdk-version": Seam::VERSION,
65
- "seam-lts-version": Seam::LTS_VERSION
66
- }
67
- end
68
-
69
- def user_agent
70
- "seam-ruby/#{Seam::VERSION}"
71
- end
72
- end
73
- end\n`;
74
- //# sourceMappingURL=request.rb.template.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"request.rb.template.js","sourceRoot":"","sources":["../../../src/lib/generate-ruby-sdk/templates/request.rb.template.ts"],"names":[],"mappings":"AAAA,eAAe,GAAG,EAAE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAwEf,CAAA"}
@@ -1,2 +0,0 @@
1
- declare const _default: () => string;
2
- export default _default;
@@ -1,41 +0,0 @@
1
- export default () => `# frozen_string_literal: true
2
-
3
- require_relative "lib/seam/version"
4
-
5
- Gem::Specification.new do |spec|
6
- spec.name = "seamapi"
7
- spec.version = Seam::VERSION
8
- spec.author = "Seam Labs, Inc."
9
- spec.email = "devops@getseam.com"
10
-
11
- spec.summary = "Seam API Ruby SDK"
12
- spec.description = "Official interface to the Seam Connect API."
13
- spec.homepage = "https://github.com/seamapi/ruby"
14
- spec.license = "MIT"
15
- spec.required_ruby_version = ">= 2.6.0"
16
-
17
- spec.metadata["homepage_uri"] = spec.homepage
18
- spec.metadata["source_code_uri"] = spec.homepage
19
- spec.metadata["bug_tracker_uri"] = "#{spec.metadata["source_code_uri"]}/issues"
20
- spec.metadata["changelog_uri"] = "#{spec.metadata["source_code_uri"]}/releases"
21
- spec.metadata["github_repo"] = "git@github.com:seamapi/ruby.git"
22
-
23
- spec.bindir = "bin"
24
- spec.executables = spec.files.grep(%r{\A#{spec.bindir}/}) { |f| File.basename(f) }
25
-
26
- spec.files = Dir["lib/**/*.rb"]
27
- spec.files += Dir["[A-Z]*"]
28
-
29
- spec.add_dependency "http", "~> 5.0"
30
-
31
- spec.add_development_dependency "bundler", "~> 2.0"
32
- spec.add_development_dependency "gem-release", "~> 2.2"
33
- spec.add_development_dependency "parse_gemspec-cli", "~> 1.0"
34
- spec.add_development_dependency "rake", "~> 13.0"
35
- spec.add_development_dependency "rspec", "~> 3.0"
36
- spec.add_development_dependency "simplecov", "~> 0.21"
37
- spec.add_development_dependency "simplecov-console", "~> 0.9"
38
- spec.add_development_dependency "standard", "~> 1.3"
39
- spec.add_development_dependency "webmock", "~> 3.0.0"
40
- end\n`;
41
- //# sourceMappingURL=seamapi.gemspec.template.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"seamapi.gemspec.template.js","sourceRoot":"","sources":["../../../src/lib/generate-ruby-sdk/templates/seamapi.gemspec.template.ts"],"names":[],"mappings":"AAAA,eAAe,GAAG,EAAE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAuCf,CAAA"}
@@ -1,2 +0,0 @@
1
- declare const _default: () => string;
2
- export default _default;
@@ -1,29 +0,0 @@
1
- export default () => `# frozen_string_literal: true
2
-
3
- require "simplecov"
4
- require "simplecov-console"
5
-
6
- SimpleCov.start
7
-
8
- require "seamapi"
9
- require "webmock/rspec"
10
-
11
- require_relative "support/helpers"
12
-
13
- SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter.new([
14
- SimpleCov::Formatter::HTMLFormatter,
15
- SimpleCov::Formatter::Console
16
- ])
17
-
18
- RSpec.configure do |config|
19
- config.example_status_persistence_file_path = ".rspec_status"
20
-
21
- config.disable_monkey_patching!
22
-
23
- config.expect_with :rspec do |c|
24
- c.syntax = :expect
25
- end
26
-
27
- config.include Helpers
28
- end\n`;
29
- //# sourceMappingURL=spec_helper.rb.template.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"spec_helper.rb.template.js","sourceRoot":"","sources":["../../../src/lib/generate-ruby-sdk/templates/spec_helper.rb.template.ts"],"names":[],"mappings":"AAAA,eAAe,GAAG,EAAE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;MA2Bf,CAAA"}
@@ -1,2 +0,0 @@
1
- declare const _default: () => string;
2
- export default _default;
@@ -1,12 +0,0 @@
1
- export default () => `# frozen_string_literal: true
2
-
3
- module Helpers
4
- def stub_seam_request(method, path, response, status: 200, headers: {})
5
- stub_request(
6
- method,
7
- "https://connect.getseam.com#{path}"
8
- ).to_return(status: status, body: response.to_json,
9
- headers: {"Content-Type" => "application/json"}.merge(headers))
10
- end
11
- end\n`;
12
- //# sourceMappingURL=support-helpers.rb.template.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"support-helpers.rb.template.js","sourceRoot":"","sources":["../../../src/lib/generate-ruby-sdk/templates/support-helpers.rb.template.ts"],"names":[],"mappings":"AAAA,eAAe,GAAG,EAAE,CAAC;;;;;;;;;;MAUf,CAAA"}
@@ -1,2 +0,0 @@
1
- declare const _default: () => string;
2
- export default _default;
@@ -1,6 +0,0 @@
1
- export default () => `# frozen_string_literal: true
2
-
3
- module Seam
4
- VERSION = "1.16.1"
5
- end\n`;
6
- //# sourceMappingURL=version.rb.template.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"version.rb.template.js","sourceRoot":"","sources":["../../../src/lib/generate-ruby-sdk/templates/version.rb.template.ts"],"names":[],"mappings":"AAAA,eAAe,GAAG,EAAE,CAAC;;;;MAIf,CAAA"}
@@ -1,3 +0,0 @@
1
- export default () => `--format documentation
2
- --color
3
- --require spec_helper\n`
@@ -1 +0,0 @@
1
- export default () => `3.0.4\n`
@@ -1,21 +0,0 @@
1
- export default () => `# frozen_string_literal: true
2
-
3
- module Seam
4
- module Clients
5
- class BaseClient
6
- attr_accessor :client
7
-
8
- def initialize(client)
9
- @client = client
10
- end
11
-
12
- def request_seam_object(*attrs)
13
- client.request_seam_object(*attrs)
14
- end
15
-
16
- def request_seam(*attrs)
17
- client.request_seam(*attrs)
18
- end
19
- end
20
- end
21
- end\n`
@@ -1,58 +0,0 @@
1
- export default () => `# frozen_string_literal: true
2
-
3
- module Seam
4
- class BaseResource
5
- attr_accessor :data, :client
6
-
7
- def initialize(data, client = nil)
8
- @data = data
9
- @client = client
10
-
11
- @data.each do |key, value|
12
- instance_variable_set("@#{key}", value)
13
- end
14
- end
15
-
16
- def update_from_response(data)
17
- @data = data
18
- @data.each do |key, value|
19
- instance_variable_set("@#{key}", value)
20
- end
21
- end
22
-
23
- def self.load_from_response(data, client = nil)
24
- if data.is_a?(Array)
25
- data.map { |d| new(d, client) }
26
- else
27
- new(data, client)
28
- end
29
- end
30
-
31
- def inspect
32
- "<#{self.class.name}:#{"0x00%x" % (object_id << 1)}\\n" + # rubocop:disable Style/StringConcatenation, Style/FormatString
33
- instance_variables
34
- .map { |k| k.to_s.sub("@", "") }
35
- .filter { |k| k != "data" and k != "client" and respond_to? k }
36
- .map { |k| " #{k}=#{send(k).inspect}" }
37
- .join("\\n") + ">"
38
- end
39
-
40
- def self.date_accessor(*attrs)
41
- attrs.each do |attr|
42
- define_method(attr) do
43
- value = instance_variable_get("@#{attr}")
44
-
45
- raise "No value for #{attr} set" if value.nil?
46
-
47
- parse_datetime(value)
48
- end
49
- end
50
- end
51
-
52
- protected
53
-
54
- def parse_datetime(value)
55
- Time.parse(value)
56
- end
57
- end
58
- end\n`
@@ -1,80 +0,0 @@
1
- import { pascalCase } from "change-case"
2
-
3
- export default (resource_client_names: string[]) => {
4
- const resource_client_defs = resource_client_names
5
- .map((client_name) => {
6
- return `
7
- def ${client_name}
8
- @${client_name} ||= Seam::Clients::${pascalCase(client_name)}.new(self)
9
- end\n`
10
- })
11
- .join("")
12
-
13
- return `# frozen_string_literal: true
14
-
15
- module Seam
16
- class Client
17
- attr_accessor :api_key, :base_uri, :debug, :wait_for_action_attempt
18
-
19
- def self.lts_version
20
- Seam::LTS_VERSION
21
- end
22
-
23
- def initialize(api_key: nil, base_uri: nil, wait_for_action_attempt: false, debug: false)
24
- @api_key = api_key || ENV["SEAM_API_KEY"]
25
- @base_uri = base_uri || ENV["SEAM_API_URL"] || ENV["SEAM_ENDPOINT"] || "https://connect.getseam.com"
26
- @debug = debug
27
- @wait_for_action_attempt = wait_for_action_attempt
28
-
29
- raise ArgumentError, "SEAM_API_KEY not found in environment, and api_key not provided" if @api_key.to_s.empty?
30
-
31
- if ENV["SEAM_API_URL"]
32
- warn 'Using the SEAM_API_URL environment variable is deprecated. ' \\
33
- 'Support will be removed in a later major version. Use SEAM_ENDPOINT instead.'
34
- end
35
-
36
- end
37
-
38
- def lts_version
39
- Seam::LTS_VERSION
40
- end
41
- ${resource_client_defs}
42
-
43
- def health
44
- request_seam(:get, "/health")
45
- end
46
-
47
- # @deprecated Please use {#devices.unmanaged} instead.
48
- def unmanaged_devices
49
- warn "[DEPRECATION] 'unmanaged_devices' is deprecated. Please use 'devices.unmanaged' instead."
50
-
51
- @unmanaged_devices ||= Seam::Clients::DevicesUnmanaged.new(self)
52
- end
53
-
54
- # @deprecated Please use {#access_codes.unmanaged} instead.
55
- def unmanaged_access_codes
56
- warn "[DEPRECATION] 'unmanaged_access_codes' is deprecated. Please use 'access_codes.unmanaged' instead."
57
-
58
- @unmanaged_access_codes ||= Seam::Clients::AccessCodesUnmanaged.new(self)
59
- end
60
-
61
- def request_seam_object(method, path, klass, inner_object, config = {})
62
- response = request_seam(method, path, config)
63
-
64
- data = response[inner_object]
65
-
66
- klass.load_from_response(data, self)
67
- end
68
-
69
- def request_seam(method, path, config = {})
70
- Seam::Request.new(
71
- api_key: api_key,
72
- base_uri: base_uri,
73
- debug: debug
74
- ).perform(
75
- method, path, config
76
- )
77
- end
78
- end
79
- end\n`
80
- }
@@ -1,6 +0,0 @@
1
- export default () => `# frozen_string_literal: true
2
-
3
- source "https://rubygems.org"
4
-
5
- # Specify your gem's dependencies in seamapi.gemspec.
6
- gemspec\n`
@@ -1,12 +0,0 @@
1
- export default () => `# frozen_string_literal: true
2
-
3
- require "logger"
4
-
5
- module Seam
6
- class Logger
7
- def self.info(message)
8
- logger = ::Logger.new($stdout)
9
- logger.info(message)
10
- end
11
- end
12
- end\n`
@@ -1,5 +0,0 @@
1
- export default () => `# frozen_string_literal: true
2
-
3
- module Seam
4
- LTS_VERSION = '1.0.0'
5
- end\n`
@@ -1,22 +0,0 @@
1
- export default () => `# frozen_string_literal: true
2
-
3
- require "bundler/gem_tasks"
4
- require "rspec/core/rake_task"
5
- require "standard/rake"
6
-
7
- RSpec::Core::RakeTask.new(:spec)
8
-
9
- task default: %i[lint test]
10
-
11
- task test: "spec"
12
- task lint: "standard"
13
- task format: "standard:fix"
14
-
15
- desc "Open an interactive ruby console"
16
- task :console do
17
- require "irb"
18
- require "bundler/setup"
19
- require "seamapi"
20
- ARGV.clear
21
- IRB.start
22
- end\n`