Class: HackerOne::Client::Incremental::Activities

Inherits:
Object
  • Object
show all
Includes:
ResourceHelper
Defined in:
lib/hackerone/client/incremental/activities.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from ResourceHelper

included, #make_get_request, #make_post_request, #make_put_request, #parse_response

Constructor Details

#initialize(program, updated_at_after: nil, page_size: 25) ⇒ Activities

Returns a new instance of Activities.



11
12
13
14
15
# 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

Instance Attribute Details

#page_sizeObject (readonly)

Returns the value of attribute page_size.



9
10
11
# File 'lib/hackerone/client/incremental/activities.rb', line 9

def page_size
  @page_size
end

#programObject (readonly)

Returns the value of attribute program.



9
10
11
# File 'lib/hackerone/client/incremental/activities.rb', line 9

def program
  @program
end

#updated_at_afterObject (readonly)

Returns the value of attribute updated_at_after.



9
10
11
# File 'lib/hackerone/client/incremental/activities.rb', line 9

def updated_at_after
  @updated_at_after
end

Instance Method Details

#activitiesObject



27
28
29
30
31
# 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_pageObject



33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# 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

#traverseObject



17
18
19
20
21
22
23
24
25
# 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