Class: Blueticks::Client
- Inherits:
-
Object
- Object
- Blueticks::Client
- 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..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
-
#transport ⇒ Object
readonly
Returns the value of attribute transport.
Instance Method Summary collapse
- #account ⇒ Object
- #audiences ⇒ Object
- #campaigns ⇒ Object
- #chats ⇒ Object
- #contacts ⇒ Object
- #engines ⇒ Object
- #groups ⇒ Object
-
#initialize(api_key: nil, base_url: nil, timeout: 30.0, max_retries: 3, user_agent: nil, http: nil) ⇒ Client
constructor
A new instance of Client.
- #messages ⇒ Object
- #ping ⇒ Object
-
#request(method, path, params: nil, body: nil, idempotency_key: nil) ⇒ Object
Issue a raw request.
- #scheduled_messages ⇒ Object
- #utils ⇒ Object
- #webhooks ⇒ Object
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
#transport ⇒ Object (readonly)
Returns the value of attribute transport.
20 21 22 |
# File 'lib/blueticks/client.rb', line 20 def transport @transport end |
Instance Method Details
#account ⇒ Object
42 43 44 |
# File 'lib/blueticks/client.rb', line 42 def account @account ||= Resources::AccountResource.new(self) end |
#audiences ⇒ Object
66 67 68 |
# File 'lib/blueticks/client.rb', line 66 def audiences @audiences ||= Resources::AudiencesResource.new(self) end |
#campaigns ⇒ Object
70 71 72 |
# File 'lib/blueticks/client.rb', line 70 def campaigns @campaigns ||= Resources::CampaignsResource.new(self) end |
#chats ⇒ Object
62 63 64 |
# File 'lib/blueticks/client.rb', line 62 def chats @chats ||= Resources::ChatsResource.new(self) end |
#contacts ⇒ Object
82 83 84 |
# File 'lib/blueticks/client.rb', line 82 def contacts @contacts ||= Resources::ContactsResource.new(self) end |
#engines ⇒ Object
78 79 80 |
# File 'lib/blueticks/client.rb', line 78 def engines @engines ||= Resources::EnginesResource.new(self) end |
#groups ⇒ Object
74 75 76 |
# File 'lib/blueticks/client.rb', line 74 def groups @groups ||= Resources::GroupsResource.new(self) end |
#messages ⇒ Object
50 51 52 |
# File 'lib/blueticks/client.rb', line 50 def @messages ||= Resources::MessagesResource.new(self) end |
#ping ⇒ Object
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_messages ⇒ Object
54 55 56 |
# File 'lib/blueticks/client.rb', line 54 def @scheduled_messages ||= Resources::ScheduledMessagesResource.new(self) end |
#utils ⇒ Object
86 87 88 |
# File 'lib/blueticks/client.rb', line 86 def utils @utils ||= Resources::UtilsResource.new(self) end |
#webhooks ⇒ Object
58 59 60 |
# File 'lib/blueticks/client.rb', line 58 def webhooks @webhooks ||= Resources::WebhooksResource.new(self) end |