Class: StreamChat::Campaign

Inherits:
Object
  • Object
show all
Extended by:
T::Sig
Defined in:
lib/stream-chat/campaign.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(client, campaign_id = nil, data = nil) ⇒ Campaign



20
21
22
23
24
# File 'lib/stream-chat/campaign.rb', line 20

def initialize(client, campaign_id = nil, data = nil)
  @client = client
  @campaign_id = campaign_id
  @data = data
end

Instance Attribute Details

#campaign_idObject (readonly)

Returns the value of attribute campaign_id.



14
15
16
# File 'lib/stream-chat/campaign.rb', line 14

def campaign_id
  @campaign_id
end

#dataObject (readonly)

Returns the value of attribute data.



17
18
19
# File 'lib/stream-chat/campaign.rb', line 17

def data
  @data
end

Instance Method Details

#create(campaign_id: nil, data: nil) ⇒ Object



32
33
34
35
36
37
38
39
40
# File 'lib/stream-chat/campaign.rb', line 32

def create(campaign_id: nil, data: nil)
  @campaign_id = campaign_id if campaign_id
  @data = merge_campaign_data(@data, data) if data

  state = @client.create_campaign(campaign_id: @campaign_id, data: @data)

  @campaign_id = state['campaign']['id'] if @campaign_id.nil? && state.status_code >= 200 && state.status_code < 300 && state['campaign']
  state
end

#delete(**options) ⇒ Object



68
69
70
71
72
# File 'lib/stream-chat/campaign.rb', line 68

def delete(**options)
  raise StreamChannelException, 'campaign does not have an id' if @campaign_id.nil?

  @client.delete_campaign(@campaign_id, **options)
end

#getObject



46
47
48
49
50
# File 'lib/stream-chat/campaign.rb', line 46

def get
  raise StreamChannelException, 'campaign does not have an id' if @campaign_id.nil?

  @client.get_campaign(@campaign_id)
end

#start(scheduled_for: nil, stop_at: nil) ⇒ Object



80
81
82
83
84
# File 'lib/stream-chat/campaign.rb', line 80

def start(scheduled_for: nil, stop_at: nil)
  raise StreamChannelException, 'campaign does not have an id' if @campaign_id.nil?

  @client.start_campaign(@campaign_id, scheduled_for: scheduled_for, stop_at: stop_at)
end

#stopObject



90
91
92
93
94
# File 'lib/stream-chat/campaign.rb', line 90

def stop
  raise StreamChannelException, 'campaign does not have an id' if @campaign_id.nil?

  @client.stop_campaign(@campaign_id)
end

#update(data) ⇒ Object



57
58
59
60
61
# File 'lib/stream-chat/campaign.rb', line 57

def update(data)
  raise StreamChannelException, 'campaign does not have an id' if @campaign_id.nil?

  @client.update_campaign(@campaign_id, data)
end