Class: Blueticks::Client

Inherits:
Object
  • Object
show all
Defined in:
lib/blueticks/client.rb

Overview

Top-level entry point. Construct one and access resources via accessor methods:

client = Blueticks::Client.new(api_key: "bt_live_...")
client.messages.send(to: "12025550100", text: "Hello!")

Configuration order of precedence:

1. Explicit keyword args.
2. Environment variables: BLUETICKS_API_KEY, BLUETICKS_BASE_URL.
3. Defaults (base_url => https://api.blueticks.co).

Constant Summary collapse

DEFAULT_BASE_URL =
"https://api.blueticks.co"

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(api_key: nil, base_url: nil, timeout: 30.0, max_retries: 3, user_agent: nil, http: nil) ⇒ Client

Returns a new instance of Client.



22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/blueticks/client.rb', line 22

def initialize(api_key: nil, base_url: nil, timeout: 30.0, max_retries: 3,
               user_agent: nil, http: nil)
  api_key = resolve_api_key(api_key)
  base_url = resolve_base_url(base_url)

  @transport = Transport.new(
    api_key: api_key,
    base_url: base_url,
    timeout: timeout,
    max_retries: max_retries,
    user_agent: user_agent,
    http: http
  )
end

Instance Attribute Details

#transportObject (readonly)

Returns the value of attribute transport.



20
21
22
# File 'lib/blueticks/client.rb', line 20

def transport
  @transport
end

Instance Method Details

#accountObject



42
43
44
# File 'lib/blueticks/client.rb', line 42

def 
  @account ||= Resources::AccountResource.new(self)
end

#audiencesObject



66
67
68
# File 'lib/blueticks/client.rb', line 66

def audiences
  @audiences ||= Resources::AudiencesResource.new(self)
end

#campaignsObject



70
71
72
# File 'lib/blueticks/client.rb', line 70

def campaigns
  @campaigns ||= Resources::CampaignsResource.new(self)
end

#chatsObject



62
63
64
# File 'lib/blueticks/client.rb', line 62

def chats
  @chats ||= Resources::ChatsResource.new(self)
end

#contactsObject



82
83
84
# File 'lib/blueticks/client.rb', line 82

def contacts
  @contacts ||= Resources::ContactsResource.new(self)
end

#enginesObject



78
79
80
# File 'lib/blueticks/client.rb', line 78

def engines
  @engines ||= Resources::EnginesResource.new(self)
end

#groupsObject



74
75
76
# File 'lib/blueticks/client.rb', line 74

def groups
  @groups ||= Resources::GroupsResource.new(self)
end

#messagesObject



50
51
52
# File 'lib/blueticks/client.rb', line 50

def messages
  @messages ||= Resources::MessagesResource.new(self)
end

#pingObject



46
47
48
# File 'lib/blueticks/client.rb', line 46

def ping
  @ping ||= Resources::PingResource.new(self)
end

#request(method, path, params: nil, body: nil, idempotency_key: nil) ⇒ Object

Issue a raw request. Used internally by resource classes.



38
39
40
# File 'lib/blueticks/client.rb', line 38

def request(method, path, params: nil, body: nil, idempotency_key: nil)
  @transport.request(method, path, params: params, body: body, idempotency_key: idempotency_key)
end

#scheduled_messagesObject



54
55
56
# File 'lib/blueticks/client.rb', line 54

def scheduled_messages
  @scheduled_messages ||= Resources::ScheduledMessagesResource.new(self)
end

#utilsObject



86
87
88
# File 'lib/blueticks/client.rb', line 86

def utils
  @utils ||= Resources::UtilsResource.new(self)
end

#webhooksObject



58
59
60
# File 'lib/blueticks/client.rb', line 58

def webhooks
  @webhooks ||= Resources::WebhooksResource.new(self)
end