kapso-client-ruby 1.0.0 → 1.0.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 (47) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +81 -81
  3. data/CHANGELOG.md +262 -91
  4. data/Gemfile +20 -20
  5. data/RAILS_INTEGRATION.md +478 -0
  6. data/README.md +1053 -734
  7. data/Rakefile +40 -40
  8. data/TEMPLATE_TOOLS_GUIDE.md +120 -120
  9. data/WHATSAPP_24_HOUR_GUIDE.md +133 -133
  10. data/examples/advanced_features.rb +352 -349
  11. data/examples/advanced_messaging.rb +241 -0
  12. data/examples/basic_messaging.rb +139 -136
  13. data/examples/enhanced_interactive.rb +400 -0
  14. data/examples/flows_usage.rb +307 -0
  15. data/examples/interactive_messages.rb +343 -0
  16. data/examples/media_management.rb +256 -253
  17. data/examples/rails/jobs.rb +388 -0
  18. data/examples/rails/models.rb +240 -0
  19. data/examples/rails/notifications_controller.rb +227 -0
  20. data/examples/template_management.rb +393 -390
  21. data/kapso-ruby-logo.jpg +0 -0
  22. data/lib/kapso_client_ruby/client.rb +321 -316
  23. data/lib/kapso_client_ruby/errors.rb +348 -329
  24. data/lib/kapso_client_ruby/rails/generators/install_generator.rb +76 -0
  25. data/lib/kapso_client_ruby/rails/generators/templates/env.erb +21 -0
  26. data/lib/kapso_client_ruby/rails/generators/templates/initializer.rb.erb +33 -0
  27. data/lib/kapso_client_ruby/rails/generators/templates/message_service.rb.erb +138 -0
  28. data/lib/kapso_client_ruby/rails/generators/templates/webhook_controller.rb.erb +62 -0
  29. data/lib/kapso_client_ruby/rails/railtie.rb +55 -0
  30. data/lib/kapso_client_ruby/rails/service.rb +189 -0
  31. data/lib/kapso_client_ruby/rails/tasks.rake +167 -0
  32. data/lib/kapso_client_ruby/resources/calls.rb +172 -172
  33. data/lib/kapso_client_ruby/resources/contacts.rb +190 -190
  34. data/lib/kapso_client_ruby/resources/conversations.rb +103 -103
  35. data/lib/kapso_client_ruby/resources/flows.rb +382 -0
  36. data/lib/kapso_client_ruby/resources/media.rb +205 -205
  37. data/lib/kapso_client_ruby/resources/messages.rb +760 -380
  38. data/lib/kapso_client_ruby/resources/phone_numbers.rb +85 -85
  39. data/lib/kapso_client_ruby/resources/templates.rb +283 -283
  40. data/lib/kapso_client_ruby/types.rb +348 -262
  41. data/lib/kapso_client_ruby/version.rb +5 -5
  42. data/lib/kapso_client_ruby.rb +75 -68
  43. data/scripts/.env.example +17 -17
  44. data/scripts/kapso_template_finder.rb +91 -91
  45. data/scripts/sdk_setup.rb +404 -404
  46. data/scripts/test.rb +60 -60
  47. metadata +24 -3
data/scripts/test.rb CHANGED
@@ -1,60 +1,60 @@
1
- #!/usr/bin/env ruby
2
- # frozen_string_literal: true
3
-
4
- require 'dotenv/load' rescue nil
5
- require_relative '../lib/kapso_client_ruby'
6
-
7
- puts "🚀 Kapso API Quick Test"
8
-
9
- # Get credentials
10
- kapso_api_key = ENV['KAPSO_API_KEY']
11
- phone_number_id = ENV['PHONE_NUMBER_ID']
12
-
13
- unless kapso_api_key && phone_number_id
14
- puts "❌ Missing credentials. Run: ruby sdk_test.rb"
15
- exit 1
16
- end
17
-
18
- client = KapsoClientRuby::Client.new(
19
- kapso_api_key: kapso_api_key,
20
- base_url: ENV['WHATSAPP_BASE_URL'] || 'https://app.kapso.ai/api/meta',
21
- debug: true
22
- )
23
-
24
- puts "API Key: ***#{kapso_api_key[-4..-1]} | Phone: #{phone_number_id}"
25
-
26
- print "Destination (+56912345678): "
27
- to_number = gets.chomp
28
-
29
- puts "📱 Sending..."
30
-
31
- begin
32
- response = client.messages.send_text(
33
- phone_number_id: phone_number_id,
34
- to: to_number,
35
- body: "Test from Ruby SDK - #{Time.now.strftime('%H:%M')}"
36
- )
37
-
38
- puts "✅ SUCCESS! Message ID: #{response.messages.first.id}"
39
-
40
- rescue KapsoClientRuby::Errors::GraphApiError => e
41
- puts "❌ ERROR #{e.http_status}: #{e.message}"
42
-
43
- # Check for specific 24-hour window error
44
- if e.message.include?("24 hours") || e.message.include?("Re-engagement")
45
- puts "⏰ 24-HOUR WINDOW EXPIRED!"
46
- puts "💡 Solutions via Kapso.ai:"
47
- puts " • Check Kapso dashboard for approved templates"
48
- puts " • Run: ruby kapso_template_finder.rb (discover templates)"
49
- puts " • Run: ruby template_test.rb (test template sending)"
50
- else
51
- case e.http_status
52
- when 401
53
- puts "💡 Check Kapso API key in dashboard"
54
- when 400
55
- puts "💡 Check phone number ID or destination format"
56
- else
57
- puts "💡 Contact Kapso support"
58
- end
59
- end
60
- end
1
+ #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
3
+
4
+ require 'dotenv/load' rescue nil
5
+ require_relative '../lib/kapso_client_ruby'
6
+
7
+ puts "🚀 Kapso API Quick Test"
8
+
9
+ # Get credentials
10
+ kapso_api_key = ENV['KAPSO_API_KEY']
11
+ phone_number_id = ENV['PHONE_NUMBER_ID']
12
+
13
+ unless kapso_api_key && phone_number_id
14
+ puts "❌ Missing credentials. Run: ruby sdk_test.rb"
15
+ exit 1
16
+ end
17
+
18
+ client = KapsoClientRuby::Client.new(
19
+ kapso_api_key: kapso_api_key,
20
+ base_url: ENV['WHATSAPP_BASE_URL'] || 'https://app.kapso.ai/api/meta',
21
+ debug: true
22
+ )
23
+
24
+ puts "API Key: ***#{kapso_api_key[-4..-1]} | Phone: #{phone_number_id}"
25
+
26
+ print "Destination (+56912345678): "
27
+ to_number = gets.chomp
28
+
29
+ puts "📱 Sending..."
30
+
31
+ begin
32
+ response = client.messages.send_text(
33
+ phone_number_id: phone_number_id,
34
+ to: to_number,
35
+ body: "Test from Ruby SDK - #{Time.now.strftime('%H:%M')}"
36
+ )
37
+
38
+ puts "✅ SUCCESS! Message ID: #{response.messages.first.id}"
39
+
40
+ rescue KapsoClientRuby::Errors::GraphApiError => e
41
+ puts "❌ ERROR #{e.http_status}: #{e.message}"
42
+
43
+ # Check for specific 24-hour window error
44
+ if e.message.include?("24 hours") || e.message.include?("Re-engagement")
45
+ puts "⏰ 24-HOUR WINDOW EXPIRED!"
46
+ puts "💡 Solutions via Kapso.ai:"
47
+ puts " • Check Kapso dashboard for approved templates"
48
+ puts " • Run: ruby kapso_template_finder.rb (discover templates)"
49
+ puts " • Run: ruby template_test.rb (test template sending)"
50
+ else
51
+ case e.http_status
52
+ when 401
53
+ puts "💡 Check Kapso API key in dashboard"
54
+ when 400
55
+ puts "💡 Check phone number ID or destination format"
56
+ else
57
+ puts "💡 Contact Kapso support"
58
+ end
59
+ end
60
+ end
metadata CHANGED
@@ -1,13 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kapso-client-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - PabloB07
8
+ autorequire:
8
9
  bindir: exe
9
10
  cert_chain: []
10
- date: 1980-01-02 00:00:00.000000000 Z
11
+ date: 2025-12-10 00:00:00.000000000 Z
11
12
  dependencies:
12
13
  - !ruby/object:Gem::Dependency
13
14
  name: faraday
@@ -203,20 +204,38 @@ files:
203
204
  - ".rubocop.yml"
204
205
  - CHANGELOG.md
205
206
  - Gemfile
207
+ - RAILS_INTEGRATION.md
206
208
  - README.md
207
209
  - Rakefile
208
210
  - TEMPLATE_TOOLS_GUIDE.md
209
211
  - WHATSAPP_24_HOUR_GUIDE.md
210
212
  - examples/advanced_features.rb
213
+ - examples/advanced_messaging.rb
211
214
  - examples/basic_messaging.rb
215
+ - examples/enhanced_interactive.rb
216
+ - examples/flows_usage.rb
217
+ - examples/interactive_messages.rb
212
218
  - examples/media_management.rb
219
+ - examples/rails/jobs.rb
220
+ - examples/rails/models.rb
221
+ - examples/rails/notifications_controller.rb
213
222
  - examples/template_management.rb
223
+ - kapso-ruby-logo.jpg
214
224
  - lib/kapso_client_ruby.rb
215
225
  - lib/kapso_client_ruby/client.rb
216
226
  - lib/kapso_client_ruby/errors.rb
227
+ - lib/kapso_client_ruby/rails/generators/install_generator.rb
228
+ - lib/kapso_client_ruby/rails/generators/templates/env.erb
229
+ - lib/kapso_client_ruby/rails/generators/templates/initializer.rb.erb
230
+ - lib/kapso_client_ruby/rails/generators/templates/message_service.rb.erb
231
+ - lib/kapso_client_ruby/rails/generators/templates/webhook_controller.rb.erb
232
+ - lib/kapso_client_ruby/rails/railtie.rb
233
+ - lib/kapso_client_ruby/rails/service.rb
234
+ - lib/kapso_client_ruby/rails/tasks.rake
217
235
  - lib/kapso_client_ruby/resources/calls.rb
218
236
  - lib/kapso_client_ruby/resources/contacts.rb
219
237
  - lib/kapso_client_ruby/resources/conversations.rb
238
+ - lib/kapso_client_ruby/resources/flows.rb
220
239
  - lib/kapso_client_ruby/resources/media.rb
221
240
  - lib/kapso_client_ruby/resources/messages.rb
222
241
  - lib/kapso_client_ruby/resources/phone_numbers.rb
@@ -234,6 +253,7 @@ metadata:
234
253
  homepage_uri: https://github.com/PabloB07/kapso-client-ruby
235
254
  source_code_uri: https://github.com/PabloB07/kapso-client-ruby
236
255
  changelog_uri: https://github.com/PabloB07/kapso-client-ruby/blob/main/CHANGELOG.md
256
+ post_install_message:
237
257
  rdoc_options: []
238
258
  require_paths:
239
259
  - lib
@@ -248,7 +268,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
248
268
  - !ruby/object:Gem::Version
249
269
  version: '0'
250
270
  requirements: []
251
- rubygems_version: 3.7.2
271
+ rubygems_version: 3.4.20
272
+ signing_key:
252
273
  specification_version: 4
253
274
  summary: Ruby client for the Kapso API
254
275
  test_files: []