Class: CellForce::TcpaOptInCampaign

Inherits:
Object
  • Object
show all
Includes:
DefaultShortCode
Defined in:
lib/cell_force/tcpa_opt_in_campaign.rb

Constant Summary collapse

REQUIRED_KEYS_TO_CREATE_CAMPAIGN =
[:name, :first_message, :second_message, :error_message]

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from DefaultShortCode

#short_code_id

Constructor Details

#initialize(keyword, short_code = nil) ⇒ TcpaOptInCampaign

Returns a new instance of TcpaOptInCampaign.



10
11
12
# File 'lib/cell_force/tcpa_opt_in_campaign.rb', line 10

def initialize(keyword, short_code=nil)
  @keyword, @short_code = keyword, short_code
end

Instance Attribute Details

#keywordObject (readonly)

Returns the value of attribute keyword.



9
10
11
# File 'lib/cell_force/tcpa_opt_in_campaign.rb', line 9

def keyword
  @keyword
end

#short_codeObject (readonly)

Returns the value of attribute short_code.



9
10
11
# File 'lib/cell_force/tcpa_opt_in_campaign.rb', line 9

def short_code
  @short_code
end

Instance Method Details

#campaign_idsObject



30
31
32
33
34
# File 'lib/cell_force/tcpa_opt_in_campaign.rb', line 30

def campaign_ids
  @campaign_ids ||= Api.post("campaign/list").data.collect do |campaign|
    campaign["campaign_id"] if keyword_id == Api.post("campaign/detail", row_id: campaign["campaign_id"]).data["keyword_id"]
  end.compact
end

#create_campaign(options) ⇒ Object

Raises:

  • (ArgumentError)


36
37
38
39
# File 'lib/cell_force/tcpa_opt_in_campaign.rb', line 36

def create_campaign(options)
  raise ArgumentError, "Some options were missing for creating a campaign: #{REQUIRED_KEYS_TO_CREATE_CAMPAIGN - options.keys}" unless (REQUIRED_KEYS_TO_CREATE_CAMPAIGN - options.keys).empty?
  Api.post("campaign/tcpaoptin", keyword_id: keyword_id, shortcode_id: short_code_id, optinkeyword: "Y", name: options[:name], message: options[:first_message], doubleoptinmessage: options[:second_message], errormessage: options[:error_message]).data["campaign_id"]
end

#keyword_idObject



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/cell_force/tcpa_opt_in_campaign.rb', line 14

def keyword_id
  @keyword_id ||= begin
    begin
      Api.post("keyword/create", keyword: keyword, shortcodes: short_code_id, action: "check").data["message"]
      Api.post("keyword/create", keyword: keyword, shortcodes: short_code_id).data["row_id"]
    rescue CellForce::Api::Failure => e
      raise e unless e.to_s == "Keyword is already Exist"
      if (keyword_record = Api.post("keyword/list").data.find{ |r| keyword == r["keyword"] }) #Intentional assignment operator
        keyword_record["id"]
      else
        raise StandardError, "This keyword is already in use by another consumer of the short_code #{short_code}"
      end
    end
  end
end