whatsapp_sdk 0.9.2 → 0.11.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (36) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +11 -1
  3. data/Gemfile +0 -6
  4. data/Gemfile.lock +16 -16
  5. data/README.md +19 -0
  6. data/example.rb +67 -1
  7. data/lib/whatsapp_sdk/api/api_configuration.rb +1 -1
  8. data/lib/whatsapp_sdk/api/business_profile.rb +8 -8
  9. data/lib/whatsapp_sdk/api/medias.rb +18 -18
  10. data/lib/whatsapp_sdk/api/messages.rb +67 -71
  11. data/lib/whatsapp_sdk/api/phone_numbers.rb +16 -16
  12. data/lib/whatsapp_sdk/api/response.rb +4 -4
  13. data/lib/whatsapp_sdk/api/responses/generic_error_response.rb +49 -0
  14. data/lib/whatsapp_sdk/api/responses/message_data_response.rb +8 -8
  15. data/lib/whatsapp_sdk/api/responses/message_error_response.rb +2 -38
  16. data/lib/whatsapp_sdk/api/responses/message_template_namespace_data_response.rb +37 -0
  17. data/lib/whatsapp_sdk/api/responses/template_data_response.rb +51 -0
  18. data/lib/whatsapp_sdk/api/responses/templates_data_response.rb +39 -0
  19. data/lib/whatsapp_sdk/api/templates.rb +201 -0
  20. data/lib/whatsapp_sdk/configuration.rb +2 -2
  21. data/lib/whatsapp_sdk/resource/component.rb +2 -2
  22. data/lib/whatsapp_sdk/resource/errors.rb +68 -0
  23. data/lib/whatsapp_sdk/resource/interactive_action.rb +5 -5
  24. data/lib/whatsapp_sdk/resource/interactive_action_reply_button.rb +2 -2
  25. data/lib/whatsapp_sdk/resource/interactive_action_section.rb +2 -2
  26. data/lib/whatsapp_sdk/resource/interactive_action_section_row.rb +5 -5
  27. data/lib/whatsapp_sdk/resource/interactive_body.rb +1 -1
  28. data/lib/whatsapp_sdk/resource/interactive_footer.rb +1 -1
  29. data/lib/whatsapp_sdk/resource/interactive_header.rb +1 -1
  30. data/lib/whatsapp_sdk/resource/languages.rb +86 -0
  31. data/lib/whatsapp_sdk/resource/parameter_object.rb +2 -2
  32. data/lib/whatsapp_sdk/resource/template.rb +64 -0
  33. data/lib/whatsapp_sdk/version.rb +1 -1
  34. data/whatsapp_sdk.gemspec +8 -8
  35. metadata +22 -15
  36. data/lib/whatsapp_sdk/resource/error.rb +0 -39
@@ -0,0 +1,64 @@
1
+ # typed: strict
2
+ # frozen_string_literal: true
3
+
4
+ module WhatsappSdk
5
+ module Resource
6
+ class Template
7
+ extend T::Sig
8
+
9
+ sig { returns(String) }
10
+ attr_accessor :id
11
+
12
+ class Status < T::Enum
13
+ extend T::Sig
14
+
15
+ enums do
16
+ PENDING_DELETION = new("PENDING_DELETION")
17
+ APPROVED = new("APPROVED")
18
+ PENDING = new("PENDING")
19
+ REJECTED = new("REJECTED")
20
+ end
21
+ end
22
+
23
+ sig { returns(Status) }
24
+ attr_accessor :status
25
+
26
+ class Category < T::Enum
27
+ extend T::Sig
28
+
29
+ enums do
30
+ AUTHENTICATION = new("AUTHENTICATION")
31
+ MARKETING = new("MARKETING")
32
+ UTILITY = new("UTILITY")
33
+ end
34
+ end
35
+
36
+ sig { returns(Category) }
37
+ attr_accessor :category
38
+
39
+ sig { returns(T.nilable(String)) }
40
+ attr_accessor :language
41
+
42
+ sig { returns(T.nilable(String)) }
43
+ attr_accessor :name
44
+
45
+ sig { returns(T.nilable(T::Array[T::Hash[T.untyped, T.untyped]])) }
46
+ attr_accessor :components_json
47
+
48
+ sig do
49
+ params(
50
+ id: String, status: Status, category: Category, language: T.nilable(String), name: T.nilable(String),
51
+ components_json: T.nilable(T::Array[T::Hash[T.untyped, T.untyped]])
52
+ ).void
53
+ end
54
+ def initialize(id:, status:, category:, language: nil, name: nil, components_json: nil)
55
+ @id = id
56
+ @status = status
57
+ @category = category
58
+ @language = language
59
+ @name = name
60
+ @components_json = components_json
61
+ end
62
+ end
63
+ end
64
+ end
@@ -2,5 +2,5 @@
2
2
  # frozen_string_literal: true
3
3
 
4
4
  module WhatsappSdk
5
- VERSION = "0.9.2"
5
+ VERSION = "0.11.0"
6
6
  end
data/whatsapp_sdk.gemspec CHANGED
@@ -40,15 +40,15 @@ Gem::Specification.new do |spec|
40
40
  # spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
41
41
  spec.require_paths = ["lib"]
42
42
 
43
- spec.add_development_dependency "bundler", "~> 2.3"
44
- spec.add_development_dependency "minitest", "~> 5.0"
45
- spec.add_development_dependency "rake", "~> 12.3.3"
46
- spec.add_development_dependency('sorbet', "~>0.5.1")
43
+ spec.add_development_dependency("bundler", "~> 2.3")
44
+ spec.add_development_dependency("minitest", "~> 5.0")
45
+ spec.add_development_dependency("rake", "~> 12.3")
46
+ spec.add_development_dependency('sorbet', "~>0.5")
47
47
 
48
- spec.add_runtime_dependency('sorbet-runtime', "~>0.5.1")
48
+ spec.add_runtime_dependency('sorbet-runtime', "~>0.5")
49
49
 
50
- spec.add_dependency("faraday", "~> 2.3.0")
51
- spec.add_dependency("faraday-multipart", "~> 1.0.4")
52
- spec.add_dependency("zeitwerk", "~> 2.6.0")
50
+ spec.add_dependency("faraday", "~> 2")
51
+ spec.add_dependency("faraday-multipart", "~> 1")
52
+ spec.add_dependency("zeitwerk", "~> 2")
53
53
  spec.metadata['rubygems_mfa_required'] = 'true'
54
54
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: whatsapp_sdk
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.2
4
+ version: 0.11.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - ignacio-chiazzo
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-07-24 00:00:00.000000000 Z
11
+ date: 2024-01-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -44,84 +44,84 @@ dependencies:
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: 12.3.3
47
+ version: '12.3'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: 12.3.3
54
+ version: '12.3'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: sorbet
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: 0.5.1
61
+ version: '0.5'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: 0.5.1
68
+ version: '0.5'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: sorbet-runtime
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: 0.5.1
75
+ version: '0.5'
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: 0.5.1
82
+ version: '0.5'
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: faraday
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: 2.3.0
89
+ version: '2'
90
90
  type: :runtime
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
94
  - - "~>"
95
95
  - !ruby/object:Gem::Version
96
- version: 2.3.0
96
+ version: '2'
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: faraday-multipart
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
101
  - - "~>"
102
102
  - !ruby/object:Gem::Version
103
- version: 1.0.4
103
+ version: '1'
104
104
  type: :runtime
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
108
  - - "~>"
109
109
  - !ruby/object:Gem::Version
110
- version: 1.0.4
110
+ version: '1'
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: zeitwerk
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
115
  - - "~>"
116
116
  - !ruby/object:Gem::Version
117
- version: 2.6.0
117
+ version: '2'
118
118
  type: :runtime
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
122
  - - "~>"
123
123
  - !ruby/object:Gem::Version
124
- version: 2.6.0
124
+ version: '2'
125
125
  description: |2
126
126
  Use the Ruby Whatsapp SDK to communicate with Whatsapp API using the Cloud API.
127
127
  Create bots to send and receive messages using the Whatsapp SDK in a few minutes.
@@ -163,13 +163,18 @@ files:
163
163
  - lib/whatsapp_sdk/api/responses/business_profile_data_response.rb
164
164
  - lib/whatsapp_sdk/api/responses/data_response.rb
165
165
  - lib/whatsapp_sdk/api/responses/error_response.rb
166
+ - lib/whatsapp_sdk/api/responses/generic_error_response.rb
166
167
  - lib/whatsapp_sdk/api/responses/media_data_response.rb
167
168
  - lib/whatsapp_sdk/api/responses/message_data_response.rb
168
169
  - lib/whatsapp_sdk/api/responses/message_error_response.rb
170
+ - lib/whatsapp_sdk/api/responses/message_template_namespace_data_response.rb
169
171
  - lib/whatsapp_sdk/api/responses/phone_number_data_response.rb
170
172
  - lib/whatsapp_sdk/api/responses/phone_numbers_data_response.rb
171
173
  - lib/whatsapp_sdk/api/responses/read_message_data_response.rb
172
174
  - lib/whatsapp_sdk/api/responses/success_response.rb
175
+ - lib/whatsapp_sdk/api/responses/template_data_response.rb
176
+ - lib/whatsapp_sdk/api/responses/templates_data_response.rb
177
+ - lib/whatsapp_sdk/api/templates.rb
173
178
  - lib/whatsapp_sdk/configuration.rb
174
179
  - lib/whatsapp_sdk/error.rb
175
180
  - lib/whatsapp_sdk/resource/address.rb
@@ -181,7 +186,7 @@ files:
181
186
  - lib/whatsapp_sdk/resource/currency.rb
182
187
  - lib/whatsapp_sdk/resource/date_time.rb
183
188
  - lib/whatsapp_sdk/resource/email.rb
184
- - lib/whatsapp_sdk/resource/error.rb
189
+ - lib/whatsapp_sdk/resource/errors.rb
185
190
  - lib/whatsapp_sdk/resource/interactive.rb
186
191
  - lib/whatsapp_sdk/resource/interactive_action.rb
187
192
  - lib/whatsapp_sdk/resource/interactive_action_reply_button.rb
@@ -190,6 +195,7 @@ files:
190
195
  - lib/whatsapp_sdk/resource/interactive_body.rb
191
196
  - lib/whatsapp_sdk/resource/interactive_footer.rb
192
197
  - lib/whatsapp_sdk/resource/interactive_header.rb
198
+ - lib/whatsapp_sdk/resource/languages.rb
193
199
  - lib/whatsapp_sdk/resource/media.rb
194
200
  - lib/whatsapp_sdk/resource/media_types.rb
195
201
  - lib/whatsapp_sdk/resource/message.rb
@@ -197,6 +203,7 @@ files:
197
203
  - lib/whatsapp_sdk/resource/org.rb
198
204
  - lib/whatsapp_sdk/resource/parameter_object.rb
199
205
  - lib/whatsapp_sdk/resource/phone_number.rb
206
+ - lib/whatsapp_sdk/resource/template.rb
200
207
  - lib/whatsapp_sdk/resource/url.rb
201
208
  - lib/whatsapp_sdk/version.rb
202
209
  - sorbet/config
@@ -1,39 +0,0 @@
1
- # typed: strict
2
- # frozen_string_literal: true
3
-
4
- module WhatsappSdk
5
- module Resource
6
- module Error
7
- class MissingValue < WhatsappSdk::Error
8
- extend T::Sig
9
-
10
- sig { returns(String) }
11
- attr_reader :field
12
-
13
- sig { returns(String) }
14
- attr_reader :message
15
-
16
- sig { params(field: String, message: String).void }
17
- def initialize(field, message)
18
- @field = field
19
- @message = message
20
- super(message)
21
- end
22
- end
23
-
24
- class InvalidField < MissingValue; end
25
-
26
- class InvalidInteractiveBody < WhatsappSdk::Error; end
27
-
28
- class InvalidInteractiveActionReplyButton < WhatsappSdk::Error; end
29
-
30
- class InvalidInteractiveActionButton < WhatsappSdk::Error; end
31
-
32
- class InvalidInteractiveActionSection < WhatsappSdk::Error; end
33
-
34
- class InvalidInteractiveActionSectionRow < WhatsappSdk::Error; end
35
-
36
- class InvalidInteractiveFooter < WhatsappSdk::Error; end
37
- end
38
- end
39
- end