@seamapi/nextlove-sdk-generator 1.6.2 → 1.7.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.
- package/lib/generate-python-sdk/generate-python-sdk.js +0 -6
- package/lib/generate-python-sdk/generate-python-sdk.js.map +1 -1
- package/lib/generate-python-sdk/templates/.gitignore.template.js +0 -1
- package/lib/generate-python-sdk/templates/.gitignore.template.js.map +1 -1
- package/lib/generate-python-sdk/templates/conftest.py.template.js +0 -57
- package/lib/generate-python-sdk/templates/conftest.py.template.js.map +1 -1
- package/lib/generate-python-sdk/templates/pyproject.toml.template.js +0 -1
- package/lib/generate-python-sdk/templates/pyproject.toml.template.js.map +1 -1
- package/lib/generate-python-sdk/templates/seam.py.template.js +0 -58
- package/lib/generate-python-sdk/templates/seam.py.template.js.map +1 -1
- package/lib/generate-python-sdk/templates/snippets/abstract-seam.template.js +0 -1
- package/lib/generate-python-sdk/templates/snippets/abstract-seam.template.js.map +1 -1
- package/lib/generate-ruby-sdk/generate-ruby-sdk.js +4 -1
- package/lib/generate-ruby-sdk/generate-ruby-sdk.js.map +1 -1
- package/lib/generate-ruby-sdk/ruby-client.js +19 -12
- package/lib/generate-ruby-sdk/ruby-client.js.map +1 -1
- package/lib/generate-ruby-sdk/templates/.rspec.template.js +1 -1
- package/lib/generate-ruby-sdk/templates/.rspec.template.js.map +1 -1
- package/lib/generate-ruby-sdk/templates/.ruby-version.template.js +1 -1
- package/lib/generate-ruby-sdk/templates/.ruby-version.template.js.map +1 -1
- package/lib/generate-ruby-sdk/templates/base_client.rb.template.js +1 -1
- package/lib/generate-ruby-sdk/templates/base_client.rb.template.js.map +1 -1
- package/lib/generate-ruby-sdk/templates/base_resource.rb.template.js +1 -1
- package/lib/generate-ruby-sdk/templates/base_resource.rb.template.js.map +1 -1
- package/lib/generate-ruby-sdk/templates/client.rb.template.js +62 -48
- package/lib/generate-ruby-sdk/templates/client.rb.template.js.map +1 -1
- package/lib/generate-ruby-sdk/templates/gemfile.template.js +1 -1
- package/lib/generate-ruby-sdk/templates/gemfile.template.js.map +1 -1
- package/lib/generate-ruby-sdk/templates/logger.rb.template.js +1 -1
- package/lib/generate-ruby-sdk/templates/logger.rb.template.js.map +1 -1
- package/lib/generate-ruby-sdk/templates/lts_version.rb.template.js +6 -0
- package/lib/generate-ruby-sdk/templates/lts_version.rb.template.js.map +1 -0
- package/lib/generate-ruby-sdk/templates/rakefile.template.js +1 -1
- package/lib/generate-ruby-sdk/templates/rakefile.template.js.map +1 -1
- package/lib/generate-ruby-sdk/templates/request.rb.template.js +5 -2
- package/lib/generate-ruby-sdk/templates/request.rb.template.js.map +1 -1
- package/lib/generate-ruby-sdk/templates/resource_error.rb.template.js +1 -1
- package/lib/generate-ruby-sdk/templates/resource_error.rb.template.js.map +1 -1
- package/lib/generate-ruby-sdk/templates/resource_errors_support.rb.template.js +1 -1
- package/lib/generate-ruby-sdk/templates/resource_errors_support.rb.template.js.map +1 -1
- package/lib/generate-ruby-sdk/templates/resource_warning.rb.template.js +1 -1
- package/lib/generate-ruby-sdk/templates/resource_warning.rb.template.js.map +1 -1
- package/lib/generate-ruby-sdk/templates/resource_warnings_support.rb.template.js +1 -1
- package/lib/generate-ruby-sdk/templates/resource_warnings_support.rb.template.js.map +1 -1
- package/lib/generate-ruby-sdk/templates/seamapi.gemspec.template.js +1 -1
- package/lib/generate-ruby-sdk/templates/seamapi.gemspec.template.js.map +1 -1
- package/lib/generate-ruby-sdk/templates/snippets/action-attempt-helpers-template.js +20 -8
- package/lib/generate-ruby-sdk/templates/snippets/action-attempt-helpers-template.js.map +1 -1
- package/lib/generate-ruby-sdk/templates/snippets/resource.rb.template.js +8 -8
- package/lib/generate-ruby-sdk/templates/snippets/resource.rb.template.js.map +1 -1
- package/lib/generate-ruby-sdk/templates/spec_helper.rb.template.js +1 -1
- package/lib/generate-ruby-sdk/templates/spec_helper.rb.template.js.map +1 -1
- package/lib/generate-ruby-sdk/templates/support-helpers.rb.template.js +1 -1
- package/lib/generate-ruby-sdk/templates/support-helpers.rb.template.js.map +1 -1
- package/lib/generate-ruby-sdk/templates/version.rb.template.js +1 -1
- package/lib/generate-ruby-sdk/templates/version.rb.template.js.map +1 -1
- package/package.json +1 -1
- package/src/lib/generate-python-sdk/generate-python-sdk.ts +0 -7
- package/src/lib/generate-python-sdk/templates/.gitignore.template.ts +0 -1
- package/src/lib/generate-python-sdk/templates/conftest.py.template.ts +0 -57
- package/src/lib/generate-python-sdk/templates/pyproject.toml.template.ts +0 -1
- package/src/lib/generate-python-sdk/templates/seam.py.template.ts +0 -58
- package/src/lib/generate-python-sdk/templates/snippets/abstract-seam.template.ts +0 -1
- package/src/lib/generate-ruby-sdk/generate-ruby-sdk.ts +4 -1
- package/src/lib/generate-ruby-sdk/ruby-client.ts +22 -14
- package/src/lib/generate-ruby-sdk/templates/.rspec.template.ts +1 -1
- package/src/lib/generate-ruby-sdk/templates/.ruby-version.template.ts +1 -1
- package/src/lib/generate-ruby-sdk/templates/base_client.rb.template.ts +1 -1
- package/src/lib/generate-ruby-sdk/templates/base_resource.rb.template.ts +1 -1
- package/src/lib/generate-ruby-sdk/templates/client.rb.template.ts +62 -48
- package/src/lib/generate-ruby-sdk/templates/gemfile.template.ts +1 -1
- package/src/lib/generate-ruby-sdk/templates/logger.rb.template.ts +1 -1
- package/src/lib/generate-ruby-sdk/templates/lts_version.rb.template.ts +5 -0
- package/src/lib/generate-ruby-sdk/templates/rakefile.template.ts +1 -1
- package/src/lib/generate-ruby-sdk/templates/request.rb.template.ts +5 -2
- package/src/lib/generate-ruby-sdk/templates/resource_error.rb.template.ts +1 -1
- package/src/lib/generate-ruby-sdk/templates/resource_errors_support.rb.template.ts +1 -1
- package/src/lib/generate-ruby-sdk/templates/resource_warning.rb.template.ts +1 -1
- package/src/lib/generate-ruby-sdk/templates/resource_warnings_support.rb.template.ts +1 -1
- package/src/lib/generate-ruby-sdk/templates/seamapi.gemspec.template.ts +1 -1
- package/src/lib/generate-ruby-sdk/templates/snippets/action-attempt-helpers-template.ts +20 -8
- package/src/lib/generate-ruby-sdk/templates/snippets/resource.rb.template.ts +8 -8
- package/src/lib/generate-ruby-sdk/templates/spec_helper.rb.template.ts +1 -1
- package/src/lib/generate-ruby-sdk/templates/support-helpers.rb.template.ts +1 -1
- package/src/lib/generate-ruby-sdk/templates/version.rb.template.ts +1 -1
- package/lib/generate-python-sdk/templates/prebuild.py.template.js +0 -13
- package/lib/generate-python-sdk/templates/prebuild.py.template.js.map +0 -1
- package/lib/generate-python-sdk/templates/utils/get_sentry_dsn.py.template.d.ts +0 -2
- package/lib/generate-python-sdk/templates/utils/get_sentry_dsn.py.template.js +0 -6
- package/lib/generate-python-sdk/templates/utils/get_sentry_dsn.py.template.js.map +0 -1
- package/lib/generate-python-sdk/templates/utils/report_error.py.template.d.ts +0 -2
- package/lib/generate-python-sdk/templates/utils/report_error.py.template.js +0 -17
- package/lib/generate-python-sdk/templates/utils/report_error.py.template.js.map +0 -1
- package/lib/generate-ruby-sdk/request.rb.template.d.ts +0 -1
- package/lib/generate-ruby-sdk/request.rb.template.js +0 -2
- package/lib/generate-ruby-sdk/request.rb.template.js.map +0 -1
- package/src/lib/generate-python-sdk/templates/prebuild.py.template.ts +0 -12
- package/src/lib/generate-python-sdk/templates/utils/get_sentry_dsn.py.template.ts +0 -5
- package/src/lib/generate-python-sdk/templates/utils/report_error.py.template.ts +0 -16
- package/src/lib/generate-ruby-sdk/request.rb.template.ts +0 -0
- /package/lib/{generate-python-sdk/templates/prebuild.py.template.d.ts → generate-ruby-sdk/templates/lts_version.rb.template.d.ts} +0 -0
|
@@ -4,59 +4,73 @@ export default (resource_client_names: string[]) => {
|
|
|
4
4
|
const resource_client_defs = resource_client_names
|
|
5
5
|
.map((client_name) => {
|
|
6
6
|
return `
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
`
|
|
7
|
+
def ${client_name}
|
|
8
|
+
@${client_name} ||= Seam::Clients::${pascalCase(client_name)}.new(self)
|
|
9
|
+
end\n`
|
|
11
10
|
})
|
|
12
11
|
.join("")
|
|
13
12
|
|
|
14
13
|
return `# frozen_string_literal: true
|
|
15
14
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
# @deprecated Please use {#access_codes.unmanaged} instead.
|
|
37
|
-
def unmanaged_access_codes
|
|
38
|
-
warn "[DEPRECATION] 'unmanaged_access_codes' is deprecated. Please use 'access_codes.unmanaged' instead."
|
|
39
|
-
|
|
40
|
-
@unmanaged_access_codes ||= Seam::Clients::AccessCodesUnmanaged.new(self)
|
|
41
|
-
end
|
|
42
|
-
|
|
43
|
-
def request_seam_object(method, path, klass, inner_object, config = {})
|
|
44
|
-
response = request_seam(method, path, config)
|
|
45
|
-
|
|
46
|
-
data = response[inner_object]
|
|
47
|
-
|
|
48
|
-
klass.load_from_response(data, self)
|
|
49
|
-
end
|
|
50
|
-
|
|
51
|
-
def request_seam(method, path, config = {})
|
|
52
|
-
Seam::Request.new(
|
|
53
|
-
api_key: api_key,
|
|
54
|
-
base_uri: base_uri,
|
|
55
|
-
debug: debug
|
|
56
|
-
).perform(
|
|
57
|
-
method, path, config
|
|
58
|
-
)
|
|
15
|
+
module Seam
|
|
16
|
+
class Client
|
|
17
|
+
attr_accessor :api_key, :base_uri, :debug
|
|
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.'
|
|
59
34
|
end
|
|
35
|
+
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
def lts_version
|
|
39
|
+
Seam::LTS_VERSION
|
|
40
|
+
end
|
|
41
|
+
${resource_client_defs}
|
|
42
|
+
|
|
43
|
+
# @deprecated Please use {#devices.unmanaged} instead.
|
|
44
|
+
def unmanaged_devices
|
|
45
|
+
warn "[DEPRECATION] 'unmanaged_devices' is deprecated. Please use 'devices.unmanaged' instead."
|
|
46
|
+
|
|
47
|
+
@unmanaged_devices ||= Seam::Clients::DevicesUnmanaged.new(self)
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
# @deprecated Please use {#access_codes.unmanaged} instead.
|
|
51
|
+
def unmanaged_access_codes
|
|
52
|
+
warn "[DEPRECATION] 'unmanaged_access_codes' is deprecated. Please use 'access_codes.unmanaged' instead."
|
|
53
|
+
|
|
54
|
+
@unmanaged_access_codes ||= Seam::Clients::AccessCodesUnmanaged.new(self)
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
def request_seam_object(method, path, klass, inner_object, config = {})
|
|
58
|
+
response = request_seam(method, path, config)
|
|
59
|
+
|
|
60
|
+
data = response[inner_object]
|
|
61
|
+
|
|
62
|
+
klass.load_from_response(data, self)
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
def request_seam(method, path, config = {})
|
|
66
|
+
Seam::Request.new(
|
|
67
|
+
api_key: api_key,
|
|
68
|
+
base_uri: base_uri,
|
|
69
|
+
debug: debug
|
|
70
|
+
).perform(
|
|
71
|
+
method, path, config
|
|
72
|
+
)
|
|
60
73
|
end
|
|
61
|
-
end
|
|
74
|
+
end
|
|
75
|
+
end\n`
|
|
62
76
|
}
|
|
@@ -59,7 +59,10 @@ module Seam
|
|
|
59
59
|
{
|
|
60
60
|
"User-Agent" => user_agent,
|
|
61
61
|
"Content-Type" => "application/json",
|
|
62
|
-
"Authorization" => "Bearer #{api_key}"
|
|
62
|
+
"Authorization" => "Bearer #{api_key}",
|
|
63
|
+
"seam-sdk-name": "seamapi/ruby",
|
|
64
|
+
"seam-sdk-version": Seam::VERSION,
|
|
65
|
+
"seam-lts-version": Seam::LTS_VERSION
|
|
63
66
|
}
|
|
64
67
|
end
|
|
65
68
|
|
|
@@ -67,4 +70,4 @@ module Seam
|
|
|
67
70
|
"seam-ruby/#{Seam::VERSION}"
|
|
68
71
|
end
|
|
69
72
|
end
|
|
70
|
-
end`
|
|
73
|
+
end\n`
|
|
@@ -1,15 +1,27 @@
|
|
|
1
|
-
export default () => `
|
|
2
|
-
|
|
1
|
+
export default () => `
|
|
2
|
+
def decide_and_wait(wait_for_action_attempt)
|
|
3
|
+
wait_decision = wait_for_action_attempt.nil? ? @client.wait_for_action_attempt : wait_for_action_attempt
|
|
4
|
+
|
|
5
|
+
if wait_decision == true
|
|
6
|
+
wait_until_finished
|
|
7
|
+
elsif wait_decision.is_a?(Hash)
|
|
8
|
+
wait_until_finished(timeout: wait_decision[:timeout], polling_interval: wait_decision[:polling_interval])
|
|
9
|
+
end
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def wait_until_finished(timeout: 5.0, polling_interval: 0.5)
|
|
13
|
+
time_waiting = 0.0
|
|
3
14
|
|
|
4
|
-
def wait_until_finished
|
|
5
|
-
attempts = 0
|
|
6
15
|
while @status == "pending"
|
|
16
|
+
sleep(polling_interval)
|
|
17
|
+
time_waiting += polling_interval
|
|
18
|
+
|
|
19
|
+
raise "Timed out waiting for action attempt to be finished" if time_waiting > timeout
|
|
20
|
+
|
|
7
21
|
update!
|
|
8
|
-
sleep(SLEEP_TIME)
|
|
9
|
-
attempts += 1
|
|
10
|
-
end
|
|
11
22
|
|
|
12
|
-
|
|
23
|
+
raise "Action Attempt failed: #{error['message']}" if @status == "failed"
|
|
24
|
+
end
|
|
13
25
|
|
|
14
26
|
self
|
|
15
27
|
end
|
|
@@ -20,14 +20,14 @@ export default ({
|
|
|
20
20
|
.join(", ")
|
|
21
21
|
const date_accessors =
|
|
22
22
|
date_attrs.length > 0
|
|
23
|
-
? `date_accessor ${date_attrs.map((attr) => `:${attr}`).join(", ")}`
|
|
23
|
+
? ` date_accessor ${date_attrs.map((attr) => `:${attr}`).join(", ")}`
|
|
24
24
|
: ""
|
|
25
25
|
|
|
26
26
|
const resource_errors_support = has_errors_attr
|
|
27
|
-
? "include Seam::ResourceErrorsSupport"
|
|
27
|
+
? " include Seam::ResourceErrorsSupport"
|
|
28
28
|
: ""
|
|
29
29
|
const resource_warnings_support = has_warnings_attr
|
|
30
|
-
? "include Seam::ResourceWarningsSupport"
|
|
30
|
+
? " include Seam::ResourceWarningsSupport"
|
|
31
31
|
: ""
|
|
32
32
|
|
|
33
33
|
const is_action_attempt_resource = pascal_name === "ActionAttempt"
|
|
@@ -38,12 +38,12 @@ module Seam
|
|
|
38
38
|
class ${pascal_name} < BaseResource
|
|
39
39
|
attr_accessor ${attr_accessors}
|
|
40
40
|
|
|
41
|
-
|
|
41
|
+
${date_accessors}
|
|
42
42
|
|
|
43
|
-
|
|
44
|
-
|
|
43
|
+
${resource_errors_support}
|
|
44
|
+
${resource_warnings_support}
|
|
45
45
|
|
|
46
|
-
|
|
46
|
+
${is_action_attempt_resource ? actionAttemptHelpersTemplate() : ""}
|
|
47
47
|
end
|
|
48
|
-
end`
|
|
48
|
+
end\n`
|
|
49
49
|
}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
export default () => `import os
|
|
2
|
-
|
|
3
|
-
value = os.environ.get("SENTRY_DSN", "None")
|
|
4
|
-
if value != "None":
|
|
5
|
-
value = f'"{value}"'
|
|
6
|
-
|
|
7
|
-
f = open("seamapi/utils/get_sentry_dsn.py", "w")
|
|
8
|
-
f.write(f"""
|
|
9
|
-
def get_sentry_dsn():
|
|
10
|
-
return {value}
|
|
11
|
-
""")
|
|
12
|
-
`;
|
|
13
|
-
//# sourceMappingURL=prebuild.py.template.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"prebuild.py.template.js","sourceRoot":"","sources":["../../../src/lib/generate-python-sdk/templates/prebuild.py.template.ts"],"names":[],"mappings":"AAAA,eAAe,GAAG,EAAE,CAAC;;;;;;;;;;;CAWpB,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"get_sentry_dsn.py.template.js","sourceRoot":"","sources":["../../../../src/lib/generate-python-sdk/templates/utils/get_sentry_dsn.py.template.ts"],"names":[],"mappings":"AAAA,eAAe,GAAG,EAAE,CAAC;;;;4CAIuB,CAAA"}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
export default () => `from seamapi.types import SeamApiException
|
|
2
|
-
|
|
3
|
-
"""
|
|
4
|
-
A decorator for model methods that will report errors to Sentry (if enabled).
|
|
5
|
-
Expects that the model has a \`seam\` attribute that is a \`Seam\` instance.
|
|
6
|
-
"""
|
|
7
|
-
def report_error(f):
|
|
8
|
-
def wrapper(self, *args, **kwargs):
|
|
9
|
-
try:
|
|
10
|
-
return f(self, *args, **kwargs)
|
|
11
|
-
except Exception as error:
|
|
12
|
-
if self.seam.should_report_exceptions and type(error) is not SeamApiException:
|
|
13
|
-
self.seam.sentry_client.capture_exception(error)
|
|
14
|
-
|
|
15
|
-
raise error
|
|
16
|
-
return wrapper`;
|
|
17
|
-
//# sourceMappingURL=report_error.py.template.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"report_error.py.template.js","sourceRoot":"","sources":["../../../../src/lib/generate-python-sdk/templates/utils/report_error.py.template.ts"],"names":[],"mappings":"AAAA,eAAe,GAAG,EAAE,CAAC;;;;;;;;;;;;;;;iBAeJ,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"request.rb.template.js","sourceRoot":"","sources":["../../src/lib/generate-ruby-sdk/request.rb.template.ts"],"names":[],"mappings":""}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
export default () => `from seamapi.types import SeamApiException
|
|
2
|
-
|
|
3
|
-
"""
|
|
4
|
-
A decorator for model methods that will report errors to Sentry (if enabled).
|
|
5
|
-
Expects that the model has a \`seam\` attribute that is a \`Seam\` instance.
|
|
6
|
-
"""
|
|
7
|
-
def report_error(f):
|
|
8
|
-
def wrapper(self, *args, **kwargs):
|
|
9
|
-
try:
|
|
10
|
-
return f(self, *args, **kwargs)
|
|
11
|
-
except Exception as error:
|
|
12
|
-
if self.seam.should_report_exceptions and type(error) is not SeamApiException:
|
|
13
|
-
self.seam.sentry_client.capture_exception(error)
|
|
14
|
-
|
|
15
|
-
raise error
|
|
16
|
-
return wrapper`
|
|
File without changes
|