Class: Whatsapp::Generators::WebhookGenerator
- Inherits:
-
Rails::Generators::Base
- Object
- Rails::Generators::Base
- Whatsapp::Generators::WebhookGenerator
- Defined in:
- lib/generators/whatsapp/webhook/webhook_generator.rb
Instance Method Summary collapse
- #add_routes ⇒ Object
- #create_message_handler ⇒ Object
- #create_sessions_controller ⇒ Object
- #show_post_install ⇒ Object
- #update_initializer ⇒ Object
Instance Method Details
#add_routes ⇒ Object
18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/generators/whatsapp/webhook/webhook_generator.rb', line 18 def add_routes route_content = <<~RUBY namespace :whatsapp do resources :sessions, only: [:index, :show], param: :session_id do member do post :connect post :disconnect end end end RUBY route route_content end |
#create_message_handler ⇒ Object
10 11 12 |
# File 'lib/generators/whatsapp/webhook/webhook_generator.rb', line 10 def template "message_handler.rb.tt", "app/handlers/whatsapp_message_handler.rb" end |
#create_sessions_controller ⇒ Object
14 15 16 |
# File 'lib/generators/whatsapp/webhook/webhook_generator.rb', line 14 def create_sessions_controller template "sessions_controller.rb.tt", "app/controllers/whatsapp/sessions_controller.rb" end |
#show_post_install ⇒ Object
46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 |
# File 'lib/generators/whatsapp/webhook/webhook_generator.rb', line 46 def show_post_install say "" say "whatsapp:webhook installed!", :green say "" say "Created:" say " app/handlers/whatsapp_message_handler.rb — handle incoming messages" say " app/controllers/whatsapp/sessions_controller.rb — manage sessions" say "" say "Routes added:" say " GET /whatsapp/sessions — list sessions" say " GET /whatsapp/sessions/:id — session detail + QR" say " POST /whatsapp/sessions/:id/connect — connect a session" say " POST /whatsapp/sessions/:id/disconnect — disconnect a session" say "" say "Next steps:" say " 1. Edit app/handlers/whatsapp_message_handler.rb" say " 2. Add authentication to Whatsapp::SessionsController" say " 3. Add `has_whatsapp :phone, account: true` to your model" say "" end |
#update_initializer ⇒ Object
33 34 35 36 37 38 39 40 41 42 43 44 |
# File 'lib/generators/whatsapp/webhook/webhook_generator.rb', line 33 def update_initializer initializer_path = "config/initializers/whatsapp.rb" return unless File.exist?(File.join(destination_root, initializer_path)) inject_into_file initializer_path, before: /^end\s*\z/ do <<~RUBY # Message handler — receives all incoming WhatsApp messages config.message_handler = "WhatsappMessageHandler" RUBY end end |