class Blurb::HistoryRequest

Constants

FILTERS
FROM_DATE
MAX_COUNT
MIN_COUNT
PARENT_CAMPAIGN_ID
TO_DATE

Public Class Methods

new(base_url:, headers:) click to toggle source
# File lib/blurb/history_request.rb, line 12
def initialize(base_url:, headers:)
  @base_url = base_url
  @headers = headers
end

Public Instance Methods

retrieve( from_date: FROM_DATE, to_date: TO_DATE, campaign_ids:, filters: FILTERS, parent_campaign_id: PARENT_CAMPAIGN_ID, count: MAX_COUNT ) click to toggle source
# File lib/blurb/history_request.rb, line 17
def retrieve(
  from_date: FROM_DATE,
  to_date: TO_DATE,
  campaign_ids:,
  filters: FILTERS,
  parent_campaign_id: PARENT_CAMPAIGN_ID,
  count: MAX_COUNT
)

  count = MIN_COUNT if count < MIN_COUNT
  count = MAX_COUNT if count > MAX_COUNT

  payload = {
    sort: {
      key: 'DATE',
      direction: 'ASC'
    },
    fromDate: from_date.to_i,
    toDate: to_date.to_i,
    eventTypes: {
      CAMPAIGN: {
        eventTypeIds: campaign_ids
      }
    },
    count: count
  }

  payload[:eventTypes][:CAMPAIGN].merge!({ filters: filters }) if filters.present?
  payload[:eventTypes][:CAMPAIGN].merge!({ parents: [{ campaignId: parent_campaign_id }] }) if parent_campaign_id.present?

  execute_request(
    api_path: "/history",
    request_type: :post,
    payload: payload
  )
end