Class: HackerOne::Client::Program

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

Class Method 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) ⇒ Program

Returns a new instance of Program.



18
19
20
# File 'lib/hackerone/client/program.rb', line 18

def initialize(program)
  @program = program
end

Class Method Details

.find(program_handle_we_want) ⇒ Object



12
13
14
15
16
# File 'lib/hackerone/client/program.rb', line 12

def self.find(program_handle_we_want)
  my_programs.find do |program|
    program.handle == program_handle_we_want
  end
end

Instance Method Details

#attributesObject



34
35
36
# File 'lib/hackerone/client/program.rb', line 34

def attributes
  OpenStruct.new(@program[:attributes])
end

#balanceObject



79
80
81
82
83
84
# File 'lib/hackerone/client/program.rb', line 79

def balance
  response_body = make_get_request(
   "programs/#{id}/billing/balance"
 )
 BillingBalance.new(response_body).balance
end

#common_responses(page_number: 1, page_size: 100) ⇒ Object



64
65
66
67
68
69
# File 'lib/hackerone/client/program.rb', line 64

def common_responses(page_number: 1, page_size: 100)
  make_get_request(
    "programs/#{id}/common_responses",
    params: { page: { number: page_number, size: page_size } }
  )
end

#find_group(groupname) ⇒ Object



50
51
52
# File 'lib/hackerone/client/program.rb', line 50

def find_group(groupname)
  groups.find { |group| group.name == groupname }
end

#find_member(username) ⇒ Object



46
47
48
# File 'lib/hackerone/client/program.rb', line 46

def find_member(username)
  members.find { |member| member.user.username == username }
end

#group?(groupname) ⇒ Boolean

Returns:

  • (Boolean)


42
43
44
# File 'lib/hackerone/client/program.rb', line 42

def group?(groupname)
  find_group(groupname).present?
end

#idObject



22
23
24
# File 'lib/hackerone/client/program.rb', line 22

def id
  @program[:id]
end

#incremental_activities(updated_at_after: nil, page_size: 25) ⇒ Object



26
27
28
29
30
31
32
# File 'lib/hackerone/client/program.rb', line 26

def incremental_activities(updated_at_after: nil, page_size: 25)
  HackerOne::Client::Incremental::Activities.new(
    self,
    updated_at_after: updated_at_after,
    page_size: page_size
  )
end

#member?(username) ⇒ Boolean

Returns:

  • (Boolean)


38
39
40
# File 'lib/hackerone/client/program.rb', line 38

def member?(username)
  find_member(username).present?
end

#swag(page_number: 1, page_size: 100) ⇒ Object



71
72
73
74
75
76
77
# File 'lib/hackerone/client/program.rb', line 71

def swag(page_number: 1, page_size: 100)
  response_body = make_get_request(
    "programs/#{id}/swag",
    params: { page: { number: page_number, size: page_size } }
  )
  response_body.map { |r| Swag.new(r, self) }
end

#update_policy(policy:) ⇒ Object



54
55
56
57
58
59
60
61
62
# File 'lib/hackerone/client/program.rb', line 54

def update_policy(policy:)
  body = {
    type: "program-policy",
    attributes: {
      policy: policy
    }
  }
  make_put_request("programs/#{id}/policy", request_body: body)
end