class HackerOne::Client::Incremental::Activities

Attributes

page_size[R]
program[R]
updated_at_after[R]

Public Class Methods

new(program, updated_at_after: nil, page_size: 25) click to toggle source
# File lib/hackerone/client/incremental/activities.rb, line 11
def initialize(program, updated_at_after: nil, page_size: 25)
  @program = program
  @updated_at_after = updated_at_after
  @page_size = page_size
end

Public Instance Methods

activities() click to toggle source
# File lib/hackerone/client/incremental/activities.rb, line 27
def activities
  @activities ||= current_page[:data].map do |activity_json|
    HackerOne::Client::Activities.build activity_json
  end
end
next_page() click to toggle source
# File lib/hackerone/client/incremental/activities.rb, line 33
def next_page
  return nil unless next_cursor.present?

  # Set cursor to next page
  @updated_at_after = next_cursor

  # Remove memoization
  @current_page = nil
  @activities = nil

  # Fetch new page
  current_page

  activities
end
traverse() { |activity| ... } click to toggle source
# File lib/hackerone/client/incremental/activities.rb, line 17
def traverse
  loop do
    activities.each do |activity|
      yield activity
    end

    break if next_page.nil?
  end
end

Private Instance Methods

current_page() click to toggle source
# File lib/hackerone/client/incremental/activities.rb, line 51
def current_page
  @current_page ||= make_get_request(
    "incremental/activities",
    extract_data: false,
    params: {
      handle: program.handle,
      first: page_size,
      updated_at_after: updated_at_after
    }
  )
end
next_cursor() click to toggle source
# File lib/hackerone/client/incremental/activities.rb, line 63
def next_cursor
  current_page[:meta][:max_updated_at]
end