class Urbanairship::Reports::Helper

Constants

AUTHORIZED_PRECISIONS

Public Instance Methods

get_period_params(start_date, end_date, precision) click to toggle source
# File lib/urbanairship/reports/response_statistics.rb, line 7
def get_period_params(start_date, end_date, precision)
  validates_parameters_presence!(start_date, end_date, precision)
  validates_precision_format!(precision)

  begin
    start_parsed = Time.parse(start_date).iso8601
    end_parsed = Time.parse(end_date).iso8601

    "?start=#{start_parsed}&end=#{end_parsed}&precision=#{precision}"
  rescue ArgumentError
    fail ArgumentError, 'start_date and end_date must be valid date strings'
  end
end

Private Instance Methods

validates_parameters_presence!(start_date, end_date, precision) click to toggle source
# File lib/urbanairship/reports/response_statistics.rb, line 23
def validates_parameters_presence!(start_date, end_date, precision)
  return unless [start_date, end_date, precision].any?(&:nil?)

  fail ArgumentError, 'the parameters cannot be set to nil'
end
validates_precision_format!(precision) click to toggle source
# File lib/urbanairship/reports/response_statistics.rb, line 30
def validates_precision_format!(precision)
  return if AUTHORIZED_PRECISIONS.include?(precision)

  fail ArgumentError, 'Precision must be "HOURLY", "DAILY", or "MONTHLY"'
end