class Smtpcom::Sendapi::ClicksReport

Attributes

campaign[R]
finish[R]
sender[R]
start[R]
total[R]
url[R]

Public Class Methods

new(start, finish, sender = nil, campaign = nil, url = nil) click to toggle source
# File lib/smtpcom/sendapi/clicks_report.rb, line 6
def initialize(start, finish, sender = nil, campaign = nil, url = nil)
  @start    = start
  @finish   = finish
  @sender   = sender
  @campaign = campaign
  @url      = url
end

Public Instance Methods

all(count = 100, page = 1) click to toggle source
# File lib/smtpcom/sendapi/clicks_report.rb, line 14
def all(count = 100, page = 1)
  response = _get(list_url, prepare_params(count, page))
  @total = response['Total']
  format_response response['Data']
end
csv(count = 100, page = 1) click to toggle source
# File lib/smtpcom/sendapi/clicks_report.rb, line 20
def csv(count = 100, page = 1)
  _get_raw(csv_url, prepare_params(count, page).merge(headers: { 'Accept' => 'text/csv' }))
end
csv_url() click to toggle source
# File lib/smtpcom/sendapi/clicks_report.rb, line 28
def csv_url
  @url ? '/clicksbyurlexport/get' : '/clicksexport/get'
end
list_url() click to toggle source
# File lib/smtpcom/sendapi/clicks_report.rb, line 24
def list_url
  @url ? '/clicksbyurl/get' : '/clicks/get'
end
prepare_params(count, page) click to toggle source
# File lib/smtpcom/sendapi/clicks_report.rb, line 32
def prepare_params(count, page)
  attributes = {
    DateFrom: @start.strftime("%m/%d/%Y"),
    DateTo:   @finish.strftime("%m/%d/%Y"),
    Count:    count,
    Page:     page
  }
  attributes[:Sender]     = @sender    if @sender
  attributes[:CampaignID] = @campaign  if @campaign
  attributes[:Url]        = @url       if @url
  attributes
end

Private Instance Methods

format_response(data) click to toggle source
# File lib/smtpcom/sendapi/clicks_report.rb, line 47
def format_response(data)
  data.map do |row|
    Utils.format_response_row(row)
  end
end