Module: Mailblastr::Segments
- Defined in:
- lib/mailblastr/segments.rb
Overview
Segments are DOMAIN-FIRST: domain is required on create and list. Names
are unique within a domain (reusable across domains); every domain also
carries an auto-created "General" (all contacts) segment.
Class Method Summary collapse
-
.contacts(segment_id, params = {}) ⇒ Object
Preview the contacts a segment currently resolves to (filter matches plus explicit memberships).
-
.create(params) ⇒ Object
POST /segments Mailblastr::Segments.create({ domain: "yourdomain.com", name: "VIP", filter: { status: "subscribed" } }).
-
.delete(segment_id) ⇒ Object
DELETE /segments/:id.
-
.get(segment_id) ⇒ Object
GET /segments/:id.
-
.list(params) ⇒ Object
List a domain's segments (
domainrequired). -
.update(segment_id, params) ⇒ Object
PATCH /segments/:id.
Class Method Details
.contacts(segment_id, params = {}) ⇒ Object
Preview the contacts a segment currently resolves to (filter matches
plus explicit memberships). With no pagination params the response is
capped at 1,000 contacts and sets has_more — a segment can hold far
more than that, so page with limit + after to read all of it.
GET /segments/:id/contacts
33 34 35 36 37 38 39 |
# File 'lib/mailblastr/segments.rb', line 33 def contacts(segment_id, params = {}) Client.request( :get, "/segments/#{Client.path_escape(segment_id)}/contacts", query: Client.pagination(params) ) end |
.create(params) ⇒ Object
POST /segments Mailblastr::Segments.create({ domain: "yourdomain.com", name: "VIP", filter: { status: "subscribed" } })
12 13 14 15 |
# File 'lib/mailblastr/segments.rb', line 12 def create(params) Client.require_domain!(params, "Segments.create") Client.request(:post, "/segments", body: params) end |
.delete(segment_id) ⇒ Object
DELETE /segments/:id
47 48 49 |
# File 'lib/mailblastr/segments.rb', line 47 def delete(segment_id) Client.request(:delete, "/segments/#{Client.path_escape(segment_id)}") end |
.get(segment_id) ⇒ Object
GET /segments/:id
18 19 20 |
# File 'lib/mailblastr/segments.rb', line 18 def get(segment_id) Client.request(:get, "/segments/#{Client.path_escape(segment_id)}") end |
.list(params) ⇒ Object
List a domain's segments (domain required). GET /segments?domain=
23 24 25 26 |
# File 'lib/mailblastr/segments.rb', line 23 def list(params) domain = Client.require_domain!(params, "Segments.list") Client.request(:get, "/segments", query: { domain: domain }.merge(Client.pagination(params))) end |
.update(segment_id, params) ⇒ Object
PATCH /segments/:id
42 43 44 |
# File 'lib/mailblastr/segments.rb', line 42 def update(segment_id, params) Client.request(:patch, "/segments/#{Client.path_escape(segment_id)}", body: params) end |