class GdsApi::PerformancePlatform::DataOut

def page_views(slug, is_multipart)

def page_views(slug, is_multipart)
  options = {
      slug: slug,
      transaction: 'page-statistics',
      group_by: 'pagePath',
      collect: 'uniquePageviews:sum'
  }
  statistics(options, is_multipart)
end

def problem_reports(slug, is_multipart)

def problem_reports(slug, is_multipart)
  options = {
      slug: slug,
      transaction: 'page-contacts',
      group_by: 'pagePath',
      collect: 'total:sum'
  }
  statistics(options, is_multipart)
end

def search_terms(slug)

def search_terms(slug)
  options = {
      slug: slug,
      transaction: 'search-terms',
      group_by: 'searchKeyword',
      collect: 'searchUniques:sum'
  }
  statistics(options)
end

def searches(slug, is_multipart)

def searches(slug, is_multipart)
  options = {
      slug: slug,
      transaction: 'search-terms',
      group_by: 'pagePath',
      collect: 'searchUniques:sum'
  }
  statistics(options, is_multipart)
end

def service_feedback(transaction_page_slug)

Parameters:
  • transaction_page_slug (String) -- The slug for which service feedback is
def service_feedback(transaction_page_slug)
  get_json("#{endpoint}/data/#{transaction_page_slug}/customer-satisfaction")
end

def statistics(options, is_multipart = false)

Backdrop can be found here: https://github.com/alphagov/backdrop
storing and querying data.
The performance platform uses Backdrop and its query language for
This can be used as a free form call to the performance platform.
def statistics(options, is_multipart = false)
  params = {
      group_by: options[:group_by],
      collect: options[:collect],
      duration: 42,
      period: "day",
      end_at: Date.today.to_time.getutc.iso8601
  }
  filter_param = is_multipart ? :filter_by_prefix : :filter_by
  params[filter_param] = "pagePath:" + options[:slug]
  get_json("#{endpoint}/data/govuk-info/#{options[:transaction]}#{query_string(params)}")
end