Module: WhatsAppNotifier

Defined in:
lib/whatsapp_notifier.rb,
lib/whatsapp_notifier/client.rb,
lib/whatsapp_notifier/doctor.rb,
lib/whatsapp_notifier/errors.rb,
lib/whatsapp_notifier/result.rb,
lib/whatsapp_notifier/railtie.rb,
lib/whatsapp_notifier/version.rb,
lib/whatsapp_notifier/web_adapter.rb,
lib/whatsapp_notifier/notification.rb,
lib/whatsapp_notifier/configuration.rb,
lib/whatsapp_notifier/session/store.rb,
lib/whatsapp_notifier/providers/base.rb,
lib/whatsapp_notifier/bulk/dispatcher.rb,
lib/whatsapp_notifier/bulk/rate_limiter.rb,
lib/whatsapp_notifier/bulk/retry_policy.rb,
lib/whatsapp_notifier/session/qr_service.rb,
lib/whatsapp_notifier/jobs/send_message_job.rb,
lib/whatsapp_notifier/providers/web_automation.rb,
lib/generators/whatsapp_notifier/install_generator.rb,
lib/generators/whatsapp_notifier/install_service_generator.rb

Defined Under Namespace

Modules: Bulk, Doctor, Generators, Jobs, Providers, Session Classes: Client, Configuration, ConfigurationError, DeliveryError, Error, Notification, Railtie, Result, WebAdapter

Constant Summary collapse

VERSION =
"0.2.1"

Class Method Summary collapse

Class Method Details

.clientObject



39
40
41
# File 'lib/whatsapp_notifier.rb', line 39

def client
  @client ||= Client.new(configuration: configuration)
end

.configurationObject



30
31
32
# File 'lib/whatsapp_notifier.rb', line 30

def configuration
  @configuration ||= Configuration.new
end

.configure {|configuration| ... } ⇒ Object

Yields:



20
21
22
23
24
# File 'lib/whatsapp_notifier.rb', line 20

def configure
  yield(configuration)
  configuration.validate!
  @client = Client.new(configuration: configuration)
end

.connection_status(provider: nil, metadata: {}) ⇒ Object



61
62
63
# File 'lib/whatsapp_notifier.rb', line 61

def connection_status(provider: nil, metadata: {})
  client.connection_status(provider: provider, metadata: )
end

.deliver(to:, body:, metadata: {}, provider: nil, idempotency_key: nil) ⇒ Object



43
44
45
46
47
48
49
50
51
# File 'lib/whatsapp_notifier.rb', line 43

def deliver(to:, body:, metadata: {}, provider: nil, idempotency_key: nil)
  client.deliver(
    to: to,
    body: body,
    metadata: ,
    provider: provider,
    idempotency_key: idempotency_key
  )
end

.deliver_bulk(messages, provider: nil, sleeper: ->(seconds) { sleep(seconds) }, rng: Random.new) ⇒ Object



53
54
55
# File 'lib/whatsapp_notifier.rb', line 53

def deliver_bulk(messages, provider: nil, sleeper: ->(seconds) { sleep(seconds) }, rng: Random.new)
  client.deliver_bulk(messages, provider: provider, sleeper: sleeper, rng: rng)
end

.reset!Object



34
35
36
37
# File 'lib/whatsapp_notifier.rb', line 34

def reset!
  @configuration = Configuration.new
  @client = Client.new(configuration: @configuration)
end

.scan_qr(provider: nil, metadata: {}) ⇒ Object



57
58
59
# File 'lib/whatsapp_notifier.rb', line 57

def scan_qr(provider: nil, metadata: {})
  client.scan_qr(provider: provider, metadata: )
end

.service_pathObject



26
27
28
# File 'lib/whatsapp_notifier.rb', line 26

def service_path
  File.expand_path("whatsapp_notifier/services/web_automation", __dir__)
end