Class: Broadcast::Resources::Sequences

Inherits:
Base
  • Object
show all
Defined in:
lib/broadcast/resources/sequences.rb

Instance Method Summary collapse

Methods inherited from Base

#initialize

Constructor Details

This class inherits a constructor from Broadcast::Resources::Base

Instance Method Details

#add_subscriber(sequence_id, **attrs) ⇒ Object

Both of these nest the attributes under subscriber, because the API reads them with params.require(:subscriber). Sent flat they are rejected outright with "param is missing or the value is empty or invalid: subscriber".



33
34
35
# File 'lib/broadcast/resources/sequences.rb', line 33

def add_subscriber(sequence_id, **attrs)
  post("/api/v1/sequences/#{sequence_id}/add_subscriber", { subscriber: attrs })
end

#create(**attrs) ⇒ Object



15
16
17
# File 'lib/broadcast/resources/sequences.rb', line 15

def create(**attrs)
  post('/api/v1/sequences', attrs)
end

#create_step(sequence_id, **attrs) ⇒ Object



56
57
58
# File 'lib/broadcast/resources/sequences.rb', line 56

def create_step(sequence_id, **attrs)
  post("/api/v1/sequences/#{sequence_id}/steps", attrs)
end

#delete(id) ⇒ Object



23
24
25
# File 'lib/broadcast/resources/sequences.rb', line 23

def delete(id)
  @client.request(:delete, "/api/v1/sequences/#{id}")
end

#delete_step(sequence_id, step_id) ⇒ Object



68
69
70
# File 'lib/broadcast/resources/sequences.rb', line 68

def delete_step(sequence_id, step_id)
  @client.request(:delete, "/api/v1/sequences/#{sequence_id}/steps/#{step_id}")
end

#get_sequence(id, include_steps: false) ⇒ Object



10
11
12
13
# File 'lib/broadcast/resources/sequences.rb', line 10

def get_sequence(id, include_steps: false)
  params = include_steps ? { include_steps: true } : {}
  get("/api/v1/sequences/#{id}", params)
end

#get_step(sequence_id, step_id) ⇒ Object



52
53
54
# File 'lib/broadcast/resources/sequences.rb', line 52

def get_step(sequence_id, step_id)
  get("/api/v1/sequences/#{sequence_id}/steps/#{step_id}")
end

#list(**params) ⇒ Object



6
7
8
# File 'lib/broadcast/resources/sequences.rb', line 6

def list(**params)
  get('/api/v1/sequences', params)
end

#list_steps(sequence_id) ⇒ Object

--- Steps ---



48
49
50
# File 'lib/broadcast/resources/sequences.rb', line 48

def list_steps(sequence_id)
  get("/api/v1/sequences/#{sequence_id}/steps")
end

#list_subscribers(sequence_id, page: 1) ⇒ Object



42
43
44
# File 'lib/broadcast/resources/sequences.rb', line 42

def list_subscribers(sequence_id, page: 1)
  get("/api/v1/sequences/#{sequence_id}/list_subscribers", { page: page })
end

#move_step(sequence_id, step_id, under_id:) ⇒ Object



64
65
66
# File 'lib/broadcast/resources/sequences.rb', line 64

def move_step(sequence_id, step_id, under_id:)
  post("/api/v1/sequences/#{sequence_id}/steps/#{step_id}/move", { under_id: under_id })
end

#remove_subscriber(sequence_id, email:) ⇒ Object



37
38
39
40
# File 'lib/broadcast/resources/sequences.rb', line 37

def remove_subscriber(sequence_id, email:)
  @client.request(:delete, "/api/v1/sequences/#{sequence_id}/remove_subscriber",
                  { subscriber: { email: email } })
end

#update(id, **attrs) ⇒ Object



19
20
21
# File 'lib/broadcast/resources/sequences.rb', line 19

def update(id, **attrs)
  patch("/api/v1/sequences/#{id}", attrs)
end

#update_step(sequence_id, step_id, **attrs) ⇒ Object



60
61
62
# File 'lib/broadcast/resources/sequences.rb', line 60

def update_step(sequence_id, step_id, **attrs)
  patch("/api/v1/sequences/#{sequence_id}/steps/#{step_id}", attrs)
end