@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.
Files changed (101) hide show
  1. package/lib/generate-python-sdk/generate-python-sdk.js +0 -6
  2. package/lib/generate-python-sdk/generate-python-sdk.js.map +1 -1
  3. package/lib/generate-python-sdk/templates/.gitignore.template.js +0 -1
  4. package/lib/generate-python-sdk/templates/.gitignore.template.js.map +1 -1
  5. package/lib/generate-python-sdk/templates/conftest.py.template.js +0 -57
  6. package/lib/generate-python-sdk/templates/conftest.py.template.js.map +1 -1
  7. package/lib/generate-python-sdk/templates/pyproject.toml.template.js +0 -1
  8. package/lib/generate-python-sdk/templates/pyproject.toml.template.js.map +1 -1
  9. package/lib/generate-python-sdk/templates/seam.py.template.js +0 -58
  10. package/lib/generate-python-sdk/templates/seam.py.template.js.map +1 -1
  11. package/lib/generate-python-sdk/templates/snippets/abstract-seam.template.js +0 -1
  12. package/lib/generate-python-sdk/templates/snippets/abstract-seam.template.js.map +1 -1
  13. package/lib/generate-ruby-sdk/generate-ruby-sdk.js +4 -1
  14. package/lib/generate-ruby-sdk/generate-ruby-sdk.js.map +1 -1
  15. package/lib/generate-ruby-sdk/ruby-client.js +19 -12
  16. package/lib/generate-ruby-sdk/ruby-client.js.map +1 -1
  17. package/lib/generate-ruby-sdk/templates/.rspec.template.js +1 -1
  18. package/lib/generate-ruby-sdk/templates/.rspec.template.js.map +1 -1
  19. package/lib/generate-ruby-sdk/templates/.ruby-version.template.js +1 -1
  20. package/lib/generate-ruby-sdk/templates/.ruby-version.template.js.map +1 -1
  21. package/lib/generate-ruby-sdk/templates/base_client.rb.template.js +1 -1
  22. package/lib/generate-ruby-sdk/templates/base_client.rb.template.js.map +1 -1
  23. package/lib/generate-ruby-sdk/templates/base_resource.rb.template.js +1 -1
  24. package/lib/generate-ruby-sdk/templates/base_resource.rb.template.js.map +1 -1
  25. package/lib/generate-ruby-sdk/templates/client.rb.template.js +62 -48
  26. package/lib/generate-ruby-sdk/templates/client.rb.template.js.map +1 -1
  27. package/lib/generate-ruby-sdk/templates/gemfile.template.js +1 -1
  28. package/lib/generate-ruby-sdk/templates/gemfile.template.js.map +1 -1
  29. package/lib/generate-ruby-sdk/templates/logger.rb.template.js +1 -1
  30. package/lib/generate-ruby-sdk/templates/logger.rb.template.js.map +1 -1
  31. package/lib/generate-ruby-sdk/templates/lts_version.rb.template.js +6 -0
  32. package/lib/generate-ruby-sdk/templates/lts_version.rb.template.js.map +1 -0
  33. package/lib/generate-ruby-sdk/templates/rakefile.template.js +1 -1
  34. package/lib/generate-ruby-sdk/templates/rakefile.template.js.map +1 -1
  35. package/lib/generate-ruby-sdk/templates/request.rb.template.js +5 -2
  36. package/lib/generate-ruby-sdk/templates/request.rb.template.js.map +1 -1
  37. package/lib/generate-ruby-sdk/templates/resource_error.rb.template.js +1 -1
  38. package/lib/generate-ruby-sdk/templates/resource_error.rb.template.js.map +1 -1
  39. package/lib/generate-ruby-sdk/templates/resource_errors_support.rb.template.js +1 -1
  40. package/lib/generate-ruby-sdk/templates/resource_errors_support.rb.template.js.map +1 -1
  41. package/lib/generate-ruby-sdk/templates/resource_warning.rb.template.js +1 -1
  42. package/lib/generate-ruby-sdk/templates/resource_warning.rb.template.js.map +1 -1
  43. package/lib/generate-ruby-sdk/templates/resource_warnings_support.rb.template.js +1 -1
  44. package/lib/generate-ruby-sdk/templates/resource_warnings_support.rb.template.js.map +1 -1
  45. package/lib/generate-ruby-sdk/templates/seamapi.gemspec.template.js +1 -1
  46. package/lib/generate-ruby-sdk/templates/seamapi.gemspec.template.js.map +1 -1
  47. package/lib/generate-ruby-sdk/templates/snippets/action-attempt-helpers-template.js +20 -8
  48. package/lib/generate-ruby-sdk/templates/snippets/action-attempt-helpers-template.js.map +1 -1
  49. package/lib/generate-ruby-sdk/templates/snippets/resource.rb.template.js +8 -8
  50. package/lib/generate-ruby-sdk/templates/snippets/resource.rb.template.js.map +1 -1
  51. package/lib/generate-ruby-sdk/templates/spec_helper.rb.template.js +1 -1
  52. package/lib/generate-ruby-sdk/templates/spec_helper.rb.template.js.map +1 -1
  53. package/lib/generate-ruby-sdk/templates/support-helpers.rb.template.js +1 -1
  54. package/lib/generate-ruby-sdk/templates/support-helpers.rb.template.js.map +1 -1
  55. package/lib/generate-ruby-sdk/templates/version.rb.template.js +1 -1
  56. package/lib/generate-ruby-sdk/templates/version.rb.template.js.map +1 -1
  57. package/package.json +1 -1
  58. package/src/lib/generate-python-sdk/generate-python-sdk.ts +0 -7
  59. package/src/lib/generate-python-sdk/templates/.gitignore.template.ts +0 -1
  60. package/src/lib/generate-python-sdk/templates/conftest.py.template.ts +0 -57
  61. package/src/lib/generate-python-sdk/templates/pyproject.toml.template.ts +0 -1
  62. package/src/lib/generate-python-sdk/templates/seam.py.template.ts +0 -58
  63. package/src/lib/generate-python-sdk/templates/snippets/abstract-seam.template.ts +0 -1
  64. package/src/lib/generate-ruby-sdk/generate-ruby-sdk.ts +4 -1
  65. package/src/lib/generate-ruby-sdk/ruby-client.ts +22 -14
  66. package/src/lib/generate-ruby-sdk/templates/.rspec.template.ts +1 -1
  67. package/src/lib/generate-ruby-sdk/templates/.ruby-version.template.ts +1 -1
  68. package/src/lib/generate-ruby-sdk/templates/base_client.rb.template.ts +1 -1
  69. package/src/lib/generate-ruby-sdk/templates/base_resource.rb.template.ts +1 -1
  70. package/src/lib/generate-ruby-sdk/templates/client.rb.template.ts +62 -48
  71. package/src/lib/generate-ruby-sdk/templates/gemfile.template.ts +1 -1
  72. package/src/lib/generate-ruby-sdk/templates/logger.rb.template.ts +1 -1
  73. package/src/lib/generate-ruby-sdk/templates/lts_version.rb.template.ts +5 -0
  74. package/src/lib/generate-ruby-sdk/templates/rakefile.template.ts +1 -1
  75. package/src/lib/generate-ruby-sdk/templates/request.rb.template.ts +5 -2
  76. package/src/lib/generate-ruby-sdk/templates/resource_error.rb.template.ts +1 -1
  77. package/src/lib/generate-ruby-sdk/templates/resource_errors_support.rb.template.ts +1 -1
  78. package/src/lib/generate-ruby-sdk/templates/resource_warning.rb.template.ts +1 -1
  79. package/src/lib/generate-ruby-sdk/templates/resource_warnings_support.rb.template.ts +1 -1
  80. package/src/lib/generate-ruby-sdk/templates/seamapi.gemspec.template.ts +1 -1
  81. package/src/lib/generate-ruby-sdk/templates/snippets/action-attempt-helpers-template.ts +20 -8
  82. package/src/lib/generate-ruby-sdk/templates/snippets/resource.rb.template.ts +8 -8
  83. package/src/lib/generate-ruby-sdk/templates/spec_helper.rb.template.ts +1 -1
  84. package/src/lib/generate-ruby-sdk/templates/support-helpers.rb.template.ts +1 -1
  85. package/src/lib/generate-ruby-sdk/templates/version.rb.template.ts +1 -1
  86. package/lib/generate-python-sdk/templates/prebuild.py.template.js +0 -13
  87. package/lib/generate-python-sdk/templates/prebuild.py.template.js.map +0 -1
  88. package/lib/generate-python-sdk/templates/utils/get_sentry_dsn.py.template.d.ts +0 -2
  89. package/lib/generate-python-sdk/templates/utils/get_sentry_dsn.py.template.js +0 -6
  90. package/lib/generate-python-sdk/templates/utils/get_sentry_dsn.py.template.js.map +0 -1
  91. package/lib/generate-python-sdk/templates/utils/report_error.py.template.d.ts +0 -2
  92. package/lib/generate-python-sdk/templates/utils/report_error.py.template.js +0 -17
  93. package/lib/generate-python-sdk/templates/utils/report_error.py.template.js.map +0 -1
  94. package/lib/generate-ruby-sdk/request.rb.template.d.ts +0 -1
  95. package/lib/generate-ruby-sdk/request.rb.template.js +0 -2
  96. package/lib/generate-ruby-sdk/request.rb.template.js.map +0 -1
  97. package/src/lib/generate-python-sdk/templates/prebuild.py.template.ts +0 -12
  98. package/src/lib/generate-python-sdk/templates/utils/get_sentry_dsn.py.template.ts +0 -5
  99. package/src/lib/generate-python-sdk/templates/utils/report_error.py.template.ts +0 -16
  100. package/src/lib/generate-ruby-sdk/request.rb.template.ts +0 -0
  101. /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
- def ${client_name}
8
- @${client_name} ||= Seam::Clients::${pascalCase(client_name)}.new(self)
9
- end
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
- module Seam
17
- class Client
18
- attr_accessor :api_key, :base_uri, :debug
19
-
20
- def initialize(api_key: nil, base_uri: "https://connect.getseam.com", debug: false)
21
- @api_key = api_key || ENV.fetch("SEAM_API_KEY", nil)
22
- @base_uri = base_uri
23
- @debug = debug
24
-
25
- raise ArgumentError, "SEAM_API_KEY not found in environment, and api_key not provided" unless @api_key
26
- end
27
- ${resource_client_defs}
28
-
29
- # @deprecated Please use {#devices.unmanaged} instead.
30
- def unmanaged_devices
31
- warn "[DEPRECATION] 'unmanaged_devices' is deprecated. Please use 'devices.unmanaged' instead."
32
-
33
- @unmanaged_devices ||= Seam::Clients::DevicesUnmanaged.new(self)
34
- end
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
  }
@@ -3,4 +3,4 @@ export default () => `# frozen_string_literal: true
3
3
  source "https://rubygems.org"
4
4
 
5
5
  # Specify your gem's dependencies in seamapi.gemspec.
6
- gemspec`
6
+ gemspec\n`
@@ -9,4 +9,4 @@ module Seam
9
9
  logger.info(message)
10
10
  end
11
11
  end
12
- end`
12
+ end\n`
@@ -0,0 +1,5 @@
1
+ export default () => `# frozen_string_literal: true
2
+
3
+ module Seam
4
+ LTS_VERSION = '1.0.0'
5
+ end\n`
@@ -19,4 +19,4 @@ task :console do
19
19
  require "seamapi"
20
20
  ARGV.clear
21
21
  IRB.start
22
- end`
22
+ end\n`
@@ -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`
@@ -6,4 +6,4 @@ module Seam
6
6
 
7
7
  date_accessor :created_at
8
8
  end
9
- end`
9
+ end\n`
@@ -6,4 +6,4 @@ module Seam
6
6
  @errors_converted ||= @errors.is_a?(Array) ? Seam::ResourceError.load_from_response(@errors) : []
7
7
  end
8
8
  end
9
- end`
9
+ end\n`
@@ -6,4 +6,4 @@ module Seam
6
6
 
7
7
  date_accessor :created_at
8
8
  end
9
- end`
9
+ end\n`
@@ -6,4 +6,4 @@ module Seam
6
6
  @warnings_converted ||= @warnings.is_a?(Array) ? Seam::ResourceWarning.load_from_response(@warnings) : []
7
7
  end
8
8
  end
9
- end`
9
+ end\n`
@@ -37,4 +37,4 @@ Gem::Specification.new do |spec|
37
37
  spec.add_development_dependency "simplecov-console", "~> 0.9"
38
38
  spec.add_development_dependency "standard", "~> 1.3"
39
39
  spec.add_development_dependency "webmock", "~> 3.0.0"
40
- end`
40
+ end\n`
@@ -1,15 +1,27 @@
1
- export default () => `SLEEP_TIME = 0.2
2
- MAX_ATTEMPTS = 10
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
- raise "Timed out waiting for action attempt to finish" if attempts >= MAX_ATTEMPTS
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
- ${date_accessors}
41
+ ${date_accessors}
42
42
 
43
- ${resource_errors_support}
44
- ${resource_warnings_support}
43
+ ${resource_errors_support}
44
+ ${resource_warnings_support}
45
45
 
46
- ${is_action_attempt_resource ? actionAttemptHelpersTemplate() : ""}
46
+ ${is_action_attempt_resource ? actionAttemptHelpersTemplate() : ""}
47
47
  end
48
- end`
48
+ end\n`
49
49
  }
@@ -25,4 +25,4 @@ RSpec.configure do |config|
25
25
  end
26
26
 
27
27
  config.include Helpers
28
- end`
28
+ end\n`
@@ -8,4 +8,4 @@ module Helpers
8
8
  ).to_return(status: status, body: response.to_json,
9
9
  headers: {"Content-Type" => "application/json"}.merge(headers))
10
10
  end
11
- end`
11
+ end\n`
@@ -2,4 +2,4 @@ export default () => `# frozen_string_literal: true
2
2
 
3
3
  module Seam
4
4
  VERSION = "1.16.1"
5
- end`
5
+ end\n`
@@ -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,2 +0,0 @@
1
- declare const _default: () => string;
2
- export default _default;
@@ -1,6 +0,0 @@
1
- export default () => `import os
2
-
3
- def get_sentry_dsn():
4
- # This is replaced with a hard-coded value during the build process (see scripts/prebuild.py)
5
- return os.environ.get("SENTRY_DSN", None)`;
6
- //# sourceMappingURL=get_sentry_dsn.py.template.js.map
@@ -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,2 +0,0 @@
1
- declare const _default: () => string;
2
- export default _default;
@@ -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,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=request.rb.template.js.map
@@ -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,12 +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
- `
@@ -1,5 +0,0 @@
1
- export default () => `import os
2
-
3
- def get_sentry_dsn():
4
- # This is replaced with a hard-coded value during the build process (see scripts/prebuild.py)
5
- return os.environ.get("SENTRY_DSN", None)`
@@ -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