class PortaText::Command::Api::Campaigns

The campaigns endpoint. github.com/PortaText/docs/wiki/REST-API#api_campaigns

Author

Marcelo Gornstein (marcelog@portatext.com)

Copyright

Copyright © 2015 PortaText

License

Apache-2.0

Public Instance Methods

all_subscribers() click to toggle source
# File lib/portatext/command/api/campaigns.rb, line 35
def all_subscribers
  set :all_subscribers, true
end
contact(contact) click to toggle source
# File lib/portatext/command/api/campaigns.rb, line 51
def contact(contact)
  set :contact, contact
end
contacts() click to toggle source
# File lib/portatext/command/api/campaigns.rb, line 47
def contacts
  set :contacts, true
end
csv(file) click to toggle source
# File lib/portatext/command/api/campaigns.rb, line 31
def csv(file)
  set :file, file
end
description(description) click to toggle source
# File lib/portatext/command/api/campaigns.rb, line 19
def description(description)
  set :description, description
end
endpoint(_method) click to toggle source

rubocop:disable Metrics/MethodLength rubocop:disable Metrics/AbcSize rubocop:disable Metrics/CyclomaticComplexity

# File lib/portatext/command/api/campaigns.rb, line 71
def endpoint(_method)
  unless @args[:file].nil?
    settings = @args.clone
    settings.delete :file
    settings = settings.to_json
    settings = URI.encode_www_form('settings' => settings)
    return "campaigns?#{settings}"
  end
  qs = {}
  unless @args[:page].nil?
    qs['page'] = @args[:page]
    @args.delete :page
  end
  qs = URI.encode_www_form qs
  unless @args[:id].nil?
    id = @args[:id]
    contacts = @args[:contacts]
    contact = @args[:contact]
    @args.delete :type
    @args.delete :id
    @args.delete :contacts
    @args.delete :contact
    return "campaigns/#{id}/contacts/#{contact}" if contact
    return "campaigns/#{id}/contacts?#{qs}" if contacts
    return "campaigns/#{id}"
  end
  return "campaigns?#{qs}" unless qs.empty?
  'campaigns'
end
from(from) click to toggle source
# File lib/portatext/command/api/campaigns.rb, line 23
def from(from)
  set :from, from
end
id(id) click to toggle source
# File lib/portatext/command/api/campaigns.rb, line 11
def id(id)
  set :id, id
end
name(name) click to toggle source
# File lib/portatext/command/api/campaigns.rb, line 15
def name(name)
  set :name, name
end
page(page) click to toggle source
# File lib/portatext/command/api/campaigns.rb, line 39
def page(page)
  set :page, page
end
save_to(file) click to toggle source
# File lib/portatext/command/api/campaigns.rb, line 43
def save_to(file)
  set :accept_file, file
end
schedule(type, details) click to toggle source
# File lib/portatext/command/api/campaigns.rb, line 55
def schedule(type, details)
  schedule = {}
  schedule[type] = details
  set :schedule, schedule
end
set_setting(name, value) click to toggle source
# File lib/portatext/command/api/campaigns.rb, line 61
def set_setting(name, value)
  args = @args[:settings]
  args ||= {}
  args[name] = value
  set :settings, args
end
to_contact_lists(contact_lists) click to toggle source
# File lib/portatext/command/api/campaigns.rb, line 27
def to_contact_lists(contact_lists)
  set :contact_list_ids, contact_lists
end