class SendGrid::EmailStats

Public Class Methods

new(args) click to toggle source
# File lib/sendgrid/helpers/stats/email_stats.rb, line 5
def initialize(args)
  @sendgrid_client = args[:sendgrid_client]
end

Public Instance Methods

by_day(start_date, end_date, categories = nil, subusers = nil) click to toggle source
# File lib/sendgrid/helpers/stats/email_stats.rb, line 9
def by_day(start_date, end_date, categories = nil, subusers = nil)
  get('day', start_date, end_date, categories, subusers)
end
by_month(start_date, end_date, categories = nil, subusers = nil) click to toggle source
# File lib/sendgrid/helpers/stats/email_stats.rb, line 17
def by_month(start_date, end_date, categories = nil, subusers = nil)
  get('month', start_date, end_date, categories, subusers)
end
by_week(start_date, end_date, categories = nil, subusers = nil) click to toggle source
# File lib/sendgrid/helpers/stats/email_stats.rb, line 13
def by_week(start_date, end_date, categories = nil, subusers = nil)
  get('week', start_date, end_date, categories, subusers)
end
get(aggregated_by, start_date, end_date, categories = nil, subusers = nil) click to toggle source
# File lib/sendgrid/helpers/stats/email_stats.rb, line 21
def get(aggregated_by, start_date, end_date, categories = nil, subusers = nil)
  params = query_params(aggregated_by, start_date, end_date, categories, subusers)

  response_body = @sendgrid_client.stats.get(query_params: params).body
  build_response(response_body)
end

Private Instance Methods

build_response(response_body) click to toggle source
# File lib/sendgrid/helpers/stats/email_stats.rb, line 41
def build_response(response_body)
  response_json = JSON.parse(response_body)
  StatsResponse.new(response_json)
end
query_params(aggregated_by, start_date, end_date, categories, subusers) click to toggle source
# File lib/sendgrid/helpers/stats/email_stats.rb, line 30
def query_params(aggregated_by, start_date, end_date, categories, subusers)
  params = {
    aggregated_by: aggregated_by,
    start_date: start_date,
    end_date: end_date
  }
  params.merge(categories: categories) if categories
  params.merge(subusers: subusers) if subusers
  params
end