Class: YesWeHack::Programs
- Inherits:
-
Object
- Object
- YesWeHack::Programs
- Defined in:
- lib/scopes_extractor/platforms/yeswehack/programs.rb
Overview
YesWeHack Sync Programs
Class Method Summary collapse
- .get_programs_infos(page_id, jwt) ⇒ Object
- .parse_programs(programs_infos, options, results, jwt) ⇒ Object
- .program_info(program) ⇒ Object
- .sync(results, options, jwt, page_id = 1) ⇒ Object
Class Method Details
.get_programs_infos(page_id, jwt) ⇒ Object
16 17 18 19 20 21 22 |
# File 'lib/scopes_extractor/platforms/yeswehack/programs.rb', line 16 def self.get_programs_infos(page_id, jwt) response = HttpClient.get("https://api.yeswehack.com/programs?page=#{page_id}", jwt) return unless response&.code == 200 json_body = JSON.parse(response.body) { nb_pages: json_body['pagination']['nb_pages'], programs: json_body['items'] } end |
.parse_programs(programs_infos, options, results, jwt) ⇒ Object
24 25 26 27 28 29 30 31 32 |
# File 'lib/scopes_extractor/platforms/yeswehack/programs.rb', line 24 def self.parse_programs(programs_infos, , results, jwt) programs_infos[:programs].each do |program| next if program['disabled'] next if program['vdp'] && [:skip_vdp] results[program['title']] = program_info(program) results[program['title']]['scopes'] = Scopes.sync(program_info(program), jwt) end end |
.program_info(program) ⇒ Object
34 35 36 37 38 39 40 |
# File 'lib/scopes_extractor/platforms/yeswehack/programs.rb', line 34 def self.program_info(program) { slug: program['slug'], enabled: true, private: !program['public'] } end |
.sync(results, options, jwt, page_id = 1) ⇒ Object
8 9 10 11 12 13 14 |
# File 'lib/scopes_extractor/platforms/yeswehack/programs.rb', line 8 def self.sync(results, , jwt, page_id = 1) programs_infos = get_programs_infos(page_id, jwt) return unless programs_infos parse_programs(programs_infos, , results, jwt) sync(results, , jwt, page_id + 1) unless page_id == programs_infos[:nb_pages] end |