svix 1.61.3 → 1.61.4

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 (73) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +1 -1
  3. data/lib/svix/api/ingest.rb +26 -0
  4. data/lib/svix/api/ingest_source.rb +76 -0
  5. data/lib/svix/models/adobe_sign_config.rb +46 -0
  6. data/lib/svix/models/adobe_sign_config_out.rb +43 -0
  7. data/lib/svix/models/aggregate_event_types_out.rb +2 -2
  8. data/lib/svix/models/app_portal_access_in.rb +1 -1
  9. data/lib/svix/models/app_usage_stats_out.rb +2 -2
  10. data/lib/svix/models/background_task_finished_event.rb +53 -0
  11. data/lib/svix/models/background_task_finished_event2.rb +58 -0
  12. data/lib/svix/models/background_task_out.rb +2 -2
  13. data/lib/svix/models/connector_in.rb +1 -1
  14. data/lib/svix/models/connector_out.rb +96 -0
  15. data/lib/svix/models/cron_config.rb +52 -0
  16. data/lib/svix/models/docusign_config.rb +46 -0
  17. data/lib/svix/models/docusign_config_out.rb +43 -0
  18. data/lib/svix/models/endpoint_created_event.rb +50 -0
  19. data/lib/svix/models/endpoint_created_event_data.rb +59 -0
  20. data/lib/svix/models/endpoint_deleted_event.rb +50 -0
  21. data/lib/svix/models/endpoint_deleted_event_data.rb +59 -0
  22. data/lib/svix/models/endpoint_disabled_event.rb +53 -0
  23. data/lib/svix/models/endpoint_disabled_event_data.rb +65 -0
  24. data/lib/svix/models/endpoint_disabled_trigger.rb +29 -0
  25. data/lib/svix/models/endpoint_enabled_event.rb +50 -0
  26. data/lib/svix/models/endpoint_enabled_event_data.rb +59 -0
  27. data/lib/svix/models/endpoint_message_out.rb +1 -1
  28. data/lib/svix/models/endpoint_updated_event.rb +50 -0
  29. data/lib/svix/models/endpoint_updated_event_data.rb +59 -0
  30. data/lib/svix/models/environment_out.rb +1 -1
  31. data/lib/svix/models/event_type_import_open_api_out.rb +1 -1
  32. data/lib/svix/models/expunge_all_contents_out.rb +2 -2
  33. data/lib/svix/models/github_config.rb +46 -0
  34. data/lib/svix/models/github_config_out.rb +43 -0
  35. data/lib/svix/models/hubspot_config.rb +46 -0
  36. data/lib/svix/models/hubspot_config_out.rb +43 -0
  37. data/lib/svix/models/ingest_source_consumer_portal_access_in.rb +52 -0
  38. data/lib/svix/models/ingest_source_in.rb +209 -0
  39. data/lib/svix/models/ingest_source_out.rb +221 -0
  40. data/lib/svix/models/list_response_ingest_source_out.rb +58 -0
  41. data/lib/svix/models/message_attempt_exhausted_event.rb +53 -0
  42. data/lib/svix/models/message_attempt_exhausted_event_data.rb +65 -0
  43. data/lib/svix/models/message_attempt_failed_data.rb +55 -0
  44. data/lib/svix/models/message_attempt_failing_event.rb +54 -0
  45. data/lib/svix/models/message_attempt_failing_event_data.rb +65 -0
  46. data/lib/svix/models/message_attempt_out.rb +3 -3
  47. data/lib/svix/models/message_attempt_recovered_event.rb +53 -0
  48. data/lib/svix/models/message_attempt_recovered_event_data.rb +65 -0
  49. data/lib/svix/models/message_endpoint_out.rb +1 -1
  50. data/lib/svix/models/message_in.rb +1 -1
  51. data/lib/svix/models/recover_out.rb +2 -2
  52. data/lib/svix/models/replay_out.rb +2 -2
  53. data/lib/svix/models/rotate_token_out.rb +46 -0
  54. data/lib/svix/models/segment_config.rb +46 -0
  55. data/lib/svix/models/segment_config_out.rb +43 -0
  56. data/lib/svix/models/shopify_config.rb +46 -0
  57. data/lib/svix/models/shopify_config_out.rb +43 -0
  58. data/lib/svix/models/slack_config.rb +46 -0
  59. data/lib/svix/models/slack_config_out.rb +43 -0
  60. data/lib/svix/models/stripe_config.rb +46 -0
  61. data/lib/svix/models/stripe_config_out.rb +43 -0
  62. data/lib/svix/models/svix_config.rb +46 -0
  63. data/lib/svix/models/svix_config_out.rb +43 -0
  64. data/lib/svix/models/zoom_config.rb +46 -0
  65. data/lib/svix/models/zoom_config_out.rb +43 -0
  66. data/lib/svix/util.rb +13 -0
  67. data/lib/svix/version.rb +1 -1
  68. data/lib/svix.rb +49 -1
  69. data/templates/component_type.rb.jinja +2 -0
  70. data/templates/types/macros.rb.jinja +43 -0
  71. data/templates/types/struct.rb.jinja +4 -33
  72. data/templates/types/struct_enum.rb.jinja +116 -0
  73. metadata +53 -2
@@ -0,0 +1,46 @@
1
+ # frozen_string_literal: true
2
+ # This file is @generated
3
+ require "json"
4
+
5
+ module Svix
6
+ class SlackConfig
7
+ attr_accessor :secret
8
+
9
+ ALL_FIELD ||= ["secret"].freeze
10
+ private_constant :ALL_FIELD
11
+
12
+ def initialize(attributes = {})
13
+ unless attributes.is_a?(Hash)
14
+ fail(ArgumentError, "The input argument (attributes) must be a hash in `Svix::SlackConfig` new method")
15
+ end
16
+
17
+ attributes.each do |k, v|
18
+ unless ALL_FIELD.include?(k.to_s)
19
+ fail(ArgumentError, "The field #{k} is not part of Svix::SlackConfig")
20
+ end
21
+
22
+ instance_variable_set("@#{k}", v)
23
+ instance_variable_set("@__#{k}_is_defined", true)
24
+ end
25
+ end
26
+
27
+ def self.deserialize(attributes = {})
28
+ attributes = attributes.transform_keys(&:to_s)
29
+ attrs = Hash.new
30
+ attrs["secret"] = attributes["secret"]
31
+ new(attrs)
32
+ end
33
+
34
+ def serialize
35
+ out = Hash.new
36
+ out["secret"] = Svix::serialize_primitive(@secret) if @secret
37
+ out
38
+ end
39
+
40
+ # Serializes the object to a json string
41
+ # @return String
42
+ def to_json
43
+ JSON.dump(serialize)
44
+ end
45
+ end
46
+ end
@@ -0,0 +1,43 @@
1
+ # frozen_string_literal: true
2
+ # This file is @generated
3
+ require "json"
4
+
5
+ module Svix
6
+ class SlackConfigOut
7
+
8
+ ALL_FIELD ||= [].freeze
9
+ private_constant :ALL_FIELD
10
+
11
+ def initialize(attributes = {})
12
+ unless attributes.is_a?(Hash)
13
+ fail(ArgumentError, "The input argument (attributes) must be a hash in `Svix::SlackConfigOut` new method")
14
+ end
15
+
16
+ attributes.each do |k, v|
17
+ unless ALL_FIELD.include?(k.to_s)
18
+ fail(ArgumentError, "The field #{k} is not part of Svix::SlackConfigOut")
19
+ end
20
+
21
+ instance_variable_set("@#{k}", v)
22
+ instance_variable_set("@__#{k}_is_defined", true)
23
+ end
24
+ end
25
+
26
+ def self.deserialize(attributes = {})
27
+ attributes = attributes.transform_keys(&:to_s)
28
+ attrs = Hash.new
29
+ new(attrs)
30
+ end
31
+
32
+ def serialize
33
+ out = Hash.new
34
+ out
35
+ end
36
+
37
+ # Serializes the object to a json string
38
+ # @return String
39
+ def to_json
40
+ JSON.dump(serialize)
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,46 @@
1
+ # frozen_string_literal: true
2
+ # This file is @generated
3
+ require "json"
4
+
5
+ module Svix
6
+ class StripeConfig
7
+ attr_accessor :secret
8
+
9
+ ALL_FIELD ||= ["secret"].freeze
10
+ private_constant :ALL_FIELD
11
+
12
+ def initialize(attributes = {})
13
+ unless attributes.is_a?(Hash)
14
+ fail(ArgumentError, "The input argument (attributes) must be a hash in `Svix::StripeConfig` new method")
15
+ end
16
+
17
+ attributes.each do |k, v|
18
+ unless ALL_FIELD.include?(k.to_s)
19
+ fail(ArgumentError, "The field #{k} is not part of Svix::StripeConfig")
20
+ end
21
+
22
+ instance_variable_set("@#{k}", v)
23
+ instance_variable_set("@__#{k}_is_defined", true)
24
+ end
25
+ end
26
+
27
+ def self.deserialize(attributes = {})
28
+ attributes = attributes.transform_keys(&:to_s)
29
+ attrs = Hash.new
30
+ attrs["secret"] = attributes["secret"]
31
+ new(attrs)
32
+ end
33
+
34
+ def serialize
35
+ out = Hash.new
36
+ out["secret"] = Svix::serialize_primitive(@secret) if @secret
37
+ out
38
+ end
39
+
40
+ # Serializes the object to a json string
41
+ # @return String
42
+ def to_json
43
+ JSON.dump(serialize)
44
+ end
45
+ end
46
+ end
@@ -0,0 +1,43 @@
1
+ # frozen_string_literal: true
2
+ # This file is @generated
3
+ require "json"
4
+
5
+ module Svix
6
+ class StripeConfigOut
7
+
8
+ ALL_FIELD ||= [].freeze
9
+ private_constant :ALL_FIELD
10
+
11
+ def initialize(attributes = {})
12
+ unless attributes.is_a?(Hash)
13
+ fail(ArgumentError, "The input argument (attributes) must be a hash in `Svix::StripeConfigOut` new method")
14
+ end
15
+
16
+ attributes.each do |k, v|
17
+ unless ALL_FIELD.include?(k.to_s)
18
+ fail(ArgumentError, "The field #{k} is not part of Svix::StripeConfigOut")
19
+ end
20
+
21
+ instance_variable_set("@#{k}", v)
22
+ instance_variable_set("@__#{k}_is_defined", true)
23
+ end
24
+ end
25
+
26
+ def self.deserialize(attributes = {})
27
+ attributes = attributes.transform_keys(&:to_s)
28
+ attrs = Hash.new
29
+ new(attrs)
30
+ end
31
+
32
+ def serialize
33
+ out = Hash.new
34
+ out
35
+ end
36
+
37
+ # Serializes the object to a json string
38
+ # @return String
39
+ def to_json
40
+ JSON.dump(serialize)
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,46 @@
1
+ # frozen_string_literal: true
2
+ # This file is @generated
3
+ require "json"
4
+
5
+ module Svix
6
+ class SvixConfig
7
+ attr_accessor :secret
8
+
9
+ ALL_FIELD ||= ["secret"].freeze
10
+ private_constant :ALL_FIELD
11
+
12
+ def initialize(attributes = {})
13
+ unless attributes.is_a?(Hash)
14
+ fail(ArgumentError, "The input argument (attributes) must be a hash in `Svix::SvixConfig` new method")
15
+ end
16
+
17
+ attributes.each do |k, v|
18
+ unless ALL_FIELD.include?(k.to_s)
19
+ fail(ArgumentError, "The field #{k} is not part of Svix::SvixConfig")
20
+ end
21
+
22
+ instance_variable_set("@#{k}", v)
23
+ instance_variable_set("@__#{k}_is_defined", true)
24
+ end
25
+ end
26
+
27
+ def self.deserialize(attributes = {})
28
+ attributes = attributes.transform_keys(&:to_s)
29
+ attrs = Hash.new
30
+ attrs["secret"] = attributes["secret"]
31
+ new(attrs)
32
+ end
33
+
34
+ def serialize
35
+ out = Hash.new
36
+ out["secret"] = Svix::serialize_primitive(@secret) if @secret
37
+ out
38
+ end
39
+
40
+ # Serializes the object to a json string
41
+ # @return String
42
+ def to_json
43
+ JSON.dump(serialize)
44
+ end
45
+ end
46
+ end
@@ -0,0 +1,43 @@
1
+ # frozen_string_literal: true
2
+ # This file is @generated
3
+ require "json"
4
+
5
+ module Svix
6
+ class SvixConfigOut
7
+
8
+ ALL_FIELD ||= [].freeze
9
+ private_constant :ALL_FIELD
10
+
11
+ def initialize(attributes = {})
12
+ unless attributes.is_a?(Hash)
13
+ fail(ArgumentError, "The input argument (attributes) must be a hash in `Svix::SvixConfigOut` new method")
14
+ end
15
+
16
+ attributes.each do |k, v|
17
+ unless ALL_FIELD.include?(k.to_s)
18
+ fail(ArgumentError, "The field #{k} is not part of Svix::SvixConfigOut")
19
+ end
20
+
21
+ instance_variable_set("@#{k}", v)
22
+ instance_variable_set("@__#{k}_is_defined", true)
23
+ end
24
+ end
25
+
26
+ def self.deserialize(attributes = {})
27
+ attributes = attributes.transform_keys(&:to_s)
28
+ attrs = Hash.new
29
+ new(attrs)
30
+ end
31
+
32
+ def serialize
33
+ out = Hash.new
34
+ out
35
+ end
36
+
37
+ # Serializes the object to a json string
38
+ # @return String
39
+ def to_json
40
+ JSON.dump(serialize)
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,46 @@
1
+ # frozen_string_literal: true
2
+ # This file is @generated
3
+ require "json"
4
+
5
+ module Svix
6
+ class ZoomConfig
7
+ attr_accessor :secret
8
+
9
+ ALL_FIELD ||= ["secret"].freeze
10
+ private_constant :ALL_FIELD
11
+
12
+ def initialize(attributes = {})
13
+ unless attributes.is_a?(Hash)
14
+ fail(ArgumentError, "The input argument (attributes) must be a hash in `Svix::ZoomConfig` new method")
15
+ end
16
+
17
+ attributes.each do |k, v|
18
+ unless ALL_FIELD.include?(k.to_s)
19
+ fail(ArgumentError, "The field #{k} is not part of Svix::ZoomConfig")
20
+ end
21
+
22
+ instance_variable_set("@#{k}", v)
23
+ instance_variable_set("@__#{k}_is_defined", true)
24
+ end
25
+ end
26
+
27
+ def self.deserialize(attributes = {})
28
+ attributes = attributes.transform_keys(&:to_s)
29
+ attrs = Hash.new
30
+ attrs["secret"] = attributes["secret"]
31
+ new(attrs)
32
+ end
33
+
34
+ def serialize
35
+ out = Hash.new
36
+ out["secret"] = Svix::serialize_primitive(@secret) if @secret
37
+ out
38
+ end
39
+
40
+ # Serializes the object to a json string
41
+ # @return String
42
+ def to_json
43
+ JSON.dump(serialize)
44
+ end
45
+ end
46
+ end
@@ -0,0 +1,43 @@
1
+ # frozen_string_literal: true
2
+ # This file is @generated
3
+ require "json"
4
+
5
+ module Svix
6
+ class ZoomConfigOut
7
+
8
+ ALL_FIELD ||= [].freeze
9
+ private_constant :ALL_FIELD
10
+
11
+ def initialize(attributes = {})
12
+ unless attributes.is_a?(Hash)
13
+ fail(ArgumentError, "The input argument (attributes) must be a hash in `Svix::ZoomConfigOut` new method")
14
+ end
15
+
16
+ attributes.each do |k, v|
17
+ unless ALL_FIELD.include?(k.to_s)
18
+ fail(ArgumentError, "The field #{k} is not part of Svix::ZoomConfigOut")
19
+ end
20
+
21
+ instance_variable_set("@#{k}", v)
22
+ instance_variable_set("@__#{k}_is_defined", true)
23
+ end
24
+ end
25
+
26
+ def self.deserialize(attributes = {})
27
+ attributes = attributes.transform_keys(&:to_s)
28
+ attrs = Hash.new
29
+ new(attrs)
30
+ end
31
+
32
+ def serialize
33
+ out = Hash.new
34
+ out
35
+ end
36
+
37
+ # Serializes the object to a json string
38
+ # @return String
39
+ def to_json
40
+ JSON.dump(serialize)
41
+ end
42
+ end
43
+ end
data/lib/svix/util.rb CHANGED
@@ -53,4 +53,17 @@ module Svix
53
53
  end
54
54
 
55
55
  module_function :deserialize_date
56
+
57
+ def serialize_schema_ref(v)
58
+ # Enums are a schema_ref but since we pass them around using the underlying value
59
+ # we need to check if they have the serialize method before calling it
60
+ if v.class.method_defined? :serialize
61
+ v.serialize
62
+ else
63
+ v
64
+ end
65
+ end
66
+
67
+ module_function :serialize_schema_ref
68
+
56
69
  end
data/lib/svix/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Svix
4
- VERSION = "1.61.3"
4
+ VERSION = "1.61.4"
5
5
  end
data/lib/svix.rb CHANGED
@@ -15,7 +15,9 @@ require "svix/api/endpoint"
15
15
  require "svix/api/environment"
16
16
  require "svix/api/event_type"
17
17
  require "svix/api/health"
18
+ require "svix/api/ingest"
18
19
  require "svix/api/ingest_endpoint"
20
+ require "svix/api/ingest_source"
19
21
  require "svix/api/integration"
20
22
  require "svix/api/message"
21
23
  require "svix/api/message_attempt"
@@ -23,6 +25,8 @@ require "svix/api/operational_webhook_endpoint"
23
25
  require "svix/api/statistics"
24
26
 
25
27
  # Models
28
+ require "svix/models/adobe_sign_config"
29
+ require "svix/models/adobe_sign_config_out"
26
30
  require "svix/models/aggregate_event_types_out"
27
31
  require "svix/models/app_portal_access_in"
28
32
  require "svix/models/app_portal_access_out"
@@ -32,12 +36,27 @@ require "svix/models/application_in"
32
36
  require "svix/models/application_out"
33
37
  require "svix/models/application_patch"
34
38
  require "svix/models/application_token_expire_in"
39
+ require "svix/models/background_task_finished_event"
40
+ require "svix/models/background_task_finished_event2"
35
41
  require "svix/models/background_task_out"
36
42
  require "svix/models/background_task_status"
37
43
  require "svix/models/background_task_type"
38
44
  require "svix/models/connector_in"
39
45
  require "svix/models/connector_kind"
46
+ require "svix/models/connector_out"
47
+ require "svix/models/cron_config"
40
48
  require "svix/models/dashboard_access_out"
49
+ require "svix/models/docusign_config"
50
+ require "svix/models/docusign_config_out"
51
+ require "svix/models/endpoint_created_event"
52
+ require "svix/models/endpoint_created_event_data"
53
+ require "svix/models/endpoint_deleted_event"
54
+ require "svix/models/endpoint_deleted_event_data"
55
+ require "svix/models/endpoint_disabled_event"
56
+ require "svix/models/endpoint_disabled_event_data"
57
+ require "svix/models/endpoint_disabled_trigger"
58
+ require "svix/models/endpoint_enabled_event"
59
+ require "svix/models/endpoint_enabled_event_data"
41
60
  require "svix/models/endpoint_headers_in"
42
61
  require "svix/models/endpoint_headers_out"
43
62
  require "svix/models/endpoint_headers_patch_in"
@@ -51,6 +70,8 @@ require "svix/models/endpoint_stats"
51
70
  require "svix/models/endpoint_transformation_in"
52
71
  require "svix/models/endpoint_transformation_out"
53
72
  require "svix/models/endpoint_update"
73
+ require "svix/models/endpoint_updated_event"
74
+ require "svix/models/endpoint_updated_event_data"
54
75
  require "svix/models/environment_in"
55
76
  require "svix/models/environment_out"
56
77
  require "svix/models/event_example_in"
@@ -63,6 +84,10 @@ require "svix/models/event_type_out"
63
84
  require "svix/models/event_type_patch"
64
85
  require "svix/models/event_type_update"
65
86
  require "svix/models/expunge_all_contents_out"
87
+ require "svix/models/github_config"
88
+ require "svix/models/github_config_out"
89
+ require "svix/models/hubspot_config"
90
+ require "svix/models/hubspot_config_out"
66
91
  require "svix/models/ingest_endpoint_headers_in"
67
92
  require "svix/models/ingest_endpoint_headers_out"
68
93
  require "svix/models/ingest_endpoint_in"
@@ -70,6 +95,9 @@ require "svix/models/ingest_endpoint_out"
70
95
  require "svix/models/ingest_endpoint_secret_in"
71
96
  require "svix/models/ingest_endpoint_secret_out"
72
97
  require "svix/models/ingest_endpoint_update"
98
+ require "svix/models/ingest_source_consumer_portal_access_in"
99
+ require "svix/models/ingest_source_in"
100
+ require "svix/models/ingest_source_out"
73
101
  require "svix/models/integration_in"
74
102
  require "svix/models/integration_key_out"
75
103
  require "svix/models/integration_out"
@@ -80,12 +108,20 @@ require "svix/models/list_response_endpoint_message_out"
80
108
  require "svix/models/list_response_endpoint_out"
81
109
  require "svix/models/list_response_event_type_out"
82
110
  require "svix/models/list_response_ingest_endpoint_out"
111
+ require "svix/models/list_response_ingest_source_out"
83
112
  require "svix/models/list_response_integration_out"
84
113
  require "svix/models/list_response_message_attempt_out"
85
114
  require "svix/models/list_response_message_endpoint_out"
86
115
  require "svix/models/list_response_message_out"
87
116
  require "svix/models/list_response_operational_webhook_endpoint_out"
117
+ require "svix/models/message_attempt_exhausted_event"
118
+ require "svix/models/message_attempt_exhausted_event_data"
119
+ require "svix/models/message_attempt_failed_data"
120
+ require "svix/models/message_attempt_failing_event"
121
+ require "svix/models/message_attempt_failing_event_data"
88
122
  require "svix/models/message_attempt_out"
123
+ require "svix/models/message_attempt_recovered_event"
124
+ require "svix/models/message_attempt_recovered_event_data"
89
125
  require "svix/models/message_attempt_trigger_type"
90
126
  require "svix/models/message_endpoint_out"
91
127
  require "svix/models/message_in"
@@ -103,8 +139,20 @@ require "svix/models/recover_in"
103
139
  require "svix/models/recover_out"
104
140
  require "svix/models/replay_in"
105
141
  require "svix/models/replay_out"
142
+ require "svix/models/rotate_token_out"
143
+ require "svix/models/segment_config"
144
+ require "svix/models/segment_config_out"
145
+ require "svix/models/shopify_config"
146
+ require "svix/models/shopify_config_out"
147
+ require "svix/models/slack_config"
148
+ require "svix/models/slack_config_out"
106
149
  require "svix/models/status_code_class"
107
- require "svix/models/template_out"
150
+ require "svix/models/stripe_config"
151
+ require "svix/models/stripe_config_out"
152
+ require "svix/models/svix_config"
153
+ require "svix/models/svix_config_out"
154
+ require "svix/models/zoom_config"
155
+ require "svix/models/zoom_config_out"
108
156
 
109
157
  # Core
110
158
  require "svix/api_error"
@@ -4,4 +4,6 @@
4
4
  {% include "types/string_enum.rb.jinja" -%}
5
5
  {%- elif type.kind == "integer_enum" -%}
6
6
  {% include "types/integer_enum.rb.jinja" -%}
7
+ {%- elif type.kind == "struct_enum" -%}
8
+ {% include "types/struct_enum.rb.jinja" -%}
7
9
  {%- endif %}
@@ -0,0 +1,43 @@
1
+ {% macro deserialize_field(field) -%}
2
+ {% set val_expr %}attributes['{{ field.name }}']{% endset -%}
3
+ {% set not_nil_check = "" -%}
4
+ {% if not field.required -%}
5
+ {% set not_nil_check %}if {{ val_expr }}{% endset -%}
6
+ {% endif -%}
7
+
8
+ {% if (field.type.is_set() or field.type.is_list()) and field.type.inner_type().is_schema_ref() -%}
9
+ {% set val_expr -%}
10
+ attributes['{{ field.name }}'].map { | v | Svix::{{ field.type.inner_type().to_ruby() }}.deserialize v } {{ not_nil_check }}
11
+ {%- endset -%}
12
+ {% elif field.type.is_schema_ref() -%}
13
+ {# TODO(10055): the schema called "Data" does not exist -#}
14
+ {% if field.type.to_ruby() != "Data" -%}
15
+ {% set val_expr -%}
16
+ Svix::{{ field.type.to_ruby() }}.deserialize(attributes['{{ field.name }}']) {{ not_nil_check }}
17
+ {%- endset -%}
18
+ {% endif -%}
19
+ {% elif field.type.is_datetime() -%}
20
+ {% set val_expr %}DateTime.rfc3339({{ val_expr }}).to_time {{ not_nil_check }}{% endset -%}
21
+ {% endif -%}
22
+ attrs['{{ field.name | to_snake_case }}'] = {{ val_expr }}
23
+ {% endmacro -%}
24
+
25
+ {% macro serialize_field(field) -%}
26
+ {% set val_expr %}@{{ field.name | to_snake_case }}{% endset -%}
27
+
28
+ {% if (field.type.is_set() or field.type.is_list()) and field.type.inner_type().is_schema_ref() -%}
29
+ {% set val_expr %}{{ val_expr }}.map { | v | v.serialize }{% endset -%}
30
+ {% elif field.type.is_schema_ref() -%}
31
+ {# TODO(10055): the schema called "Data" does not exist -#}
32
+ {% if field.type.to_ruby() != "Data" -%}
33
+ {% set val_expr %}Svix::serialize_schema_ref({{ val_expr }}){% endset -%}
34
+ {% endif -%}
35
+ {% else -%}
36
+ {% set val_expr %}Svix::serialize_primitive({{ val_expr }}){% endset -%}
37
+ {% endif -%}
38
+ {% if type.name is endingwith "Patch" and field.nullable -%}
39
+ out['{{ field.name }}'] = {{ val_expr }} if @__{{ field.name | to_snake_case }}_is_defined
40
+ {% else -%}
41
+ out['{{ field.name }}'] = {{ val_expr }} if @{{ field.name | to_snake_case }}
42
+ {% endif -%}
43
+ {% endmacro -%}
@@ -1,6 +1,7 @@
1
+ {% from "types/macros.rb.jinja" import deserialize_field, serialize_field -%}
2
+ {% set class_ty = type.name | to_upper_camel_case -%}
1
3
  # frozen_string_literal: true
2
4
  # This file is @generated
3
- {% set class_ty = type.name | to_upper_camel_case -%}
4
5
  require 'json'
5
6
 
6
7
  module Svix
@@ -35,24 +36,7 @@ module Svix
35
36
  attributes = attributes.transform_keys(&:to_s)
36
37
  attrs = Hash.new
37
38
  {% for field in type.fields -%}
38
- {% set val_expr %}attributes['{{ field.name }}']{% endset -%}
39
- {% set not_nil_check = "" -%}
40
- {% if not field.required -%}
41
- {% set not_nil_check %}if {{ val_expr }}{% endset -%}
42
- {% endif -%}
43
-
44
- {% if (field.type.is_set() or field.type.is_list()) and field.type.inner_type().is_schema_ref() -%}
45
- {% set val_expr -%}
46
- attributes['{{ field.name }}'].map { | v | Svix::{{ field.type.inner_type().to_ruby() }}.deserialize v } {{ not_nil_check }}
47
- {%- endset -%}
48
- {% elif field.type.is_schema_ref() -%}
49
- {% set val_expr -%}
50
- Svix::{{ field.type.to_ruby() }}.deserialize(attributes['{{ field.name }}']) {{ not_nil_check }}
51
- {%- endset -%}
52
- {% elif field.type.is_datetime() -%}
53
- {% set val_expr %}DateTime.rfc3339({{ val_expr }}).to_time {{ not_nil_check }}{% endset -%}
54
- {% endif -%}
55
- attrs['{{ field.name | to_snake_case }}'] = {{ val_expr }}
39
+ {{ deserialize_field(field) -}}
56
40
  {% endfor -%}
57
41
  new attrs
58
42
  end
@@ -60,20 +44,7 @@ module Svix
60
44
  def serialize
61
45
  out = Hash.new
62
46
  {% for field in type.fields -%}
63
- {% set val_expr %}@{{ field.name | to_snake_case }}{% endset -%}
64
-
65
- {% if (field.type.is_set() or field.type.is_list()) and field.type.inner_type().is_schema_ref() -%}
66
- {% set val_expr %}{{ val_expr }}.map { | v | v.serialize }{% endset -%}
67
- {% elif field.type.is_schema_ref() -%}
68
- {% set val_expr %}{{ val_expr }}.serialize{% endset -%}
69
- {% else -%}
70
- {% set val_expr %}Svix::serialize_primitive({{ val_expr }}){% endset -%}
71
- {% endif -%}
72
- {% if type.name is endingwith "Patch" and field.nullable -%}
73
- out['{{ field.name }}'] = {{ val_expr }} if @__{{ field.name | to_snake_case }}_is_defined
74
- {% else -%}
75
- out['{{ field.name }}'] = {{ val_expr }} if @{{ field.name | to_snake_case }}
76
- {% endif -%}
47
+ {{ serialize_field(field) -}}
77
48
  {% endfor -%}
78
49
  out
79
50
  end