Class: HackerOne::Client::Program
- Inherits:
-
Object
- Object
- HackerOne::Client::Program
show all
- Includes:
- ResourceHelper
- Defined in:
- lib/hackerone/client/program.rb
Class Method Summary
collapse
Instance Method Summary
collapse
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
#attributes ⇒ Object
34
35
36
|
# File 'lib/hackerone/client/program.rb', line 34
def attributes
OpenStruct.new(@program[:attributes])
end
|
#balance ⇒ Object
88
89
90
91
92
93
|
# File 'lib/hackerone/client/program.rb', line 88
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
73
74
75
76
77
78
|
# File 'lib/hackerone/client/program.rb', line 73
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
42
43
44
|
# File 'lib/hackerone/client/program.rb', line 42
def group?(groupname)
find_group(groupname).present?
end
|
#groups ⇒ Object
99
100
101
|
# File 'lib/hackerone/client/program.rb', line 99
def groups
@groups ||= relationships.groups[:data].map { |group_data| Group.new(group_data) }
end
|
#id ⇒ Object
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
38
39
40
|
# File 'lib/hackerone/client/program.rb', line 38
def member?(username)
find_member(username).present?
end
|
#members ⇒ Object
95
96
97
|
# File 'lib/hackerone/client/program.rb', line 95
def members
@members ||= relationships.members[:data].map { |member_data| Member.new(member_data) }
end
|
#organization ⇒ Object
103
104
105
|
# File 'lib/hackerone/client/program.rb', line 103
def organization
@organization ||= Organization.new(relationships.organization[:data])
end
|
#structured_scopes(page_number: 1, page_size: 100) ⇒ Object
54
55
56
57
58
59
60
61
|
# File 'lib/hackerone/client/program.rb', line 54
def structured_scopes(page_number: 1, page_size: 100)
make_get_request(
"programs/#{id}/structured_scopes",
params: { page: { number: page_number, size: page_size } }
).map do |data|
StructuredScope.new(data, self)
end
end
|
#swag(page_number: 1, page_size: 100) ⇒ Object
80
81
82
83
84
85
86
|
# File 'lib/hackerone/client/program.rb', line 80
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
63
64
65
66
67
68
69
70
71
|
# File 'lib/hackerone/client/program.rb', line 63
def update_policy(policy:)
body = {
type: "program-policy",
attributes: {
policy: policy
}
}
make_put_request("programs/#{id}/policy", request_body: body)
end
|