Module: Mailblastr::Topics

Defined in:
lib/mailblastr/topics.rb

Overview

Topics (granular subscriptions) are DOMAIN-FIRST: domain is required on create and list. Topic names are reusable across domains.

Class Method Summary collapse

Class Method Details

.create(params) ⇒ Object

POST /topics Mailblastr::Topics.create({ domain: "yourdomain.com", name: "Product updates", default_subscription: "opt_in" })



11
12
13
14
# File 'lib/mailblastr/topics.rb', line 11

def create(params)
  Client.require_domain!(params, "Topics.create")
  Client.request(:post, "/topics", body: params)
end

.delete(topic_id) ⇒ Object

DELETE /topics/:id



33
34
35
# File 'lib/mailblastr/topics.rb', line 33

def delete(topic_id)
  Client.request(:delete, "/topics/#{Client.path_escape(topic_id)}")
end

.get(topic_id) ⇒ Object

GET /topics/:id



17
18
19
# File 'lib/mailblastr/topics.rb', line 17

def get(topic_id)
  Client.request(:get, "/topics/#{Client.path_escape(topic_id)}")
end

.list(params) ⇒ Object

List a domain's topics (domain required). GET /topics?domain=



22
23
24
25
# File 'lib/mailblastr/topics.rb', line 22

def list(params)
  domain = Client.require_domain!(params, "Topics.list")
  Client.request(:get, "/topics", query: { domain: domain }.merge(Client.pagination(params)))
end

.update(topic_id, params) ⇒ Object

PATCH /topics/:id



28
29
30
# File 'lib/mailblastr/topics.rb', line 28

def update(topic_id, params)
  Client.request(:patch, "/topics/#{Client.path_escape(topic_id)}", body: params)
end