Sha256: 24ec4508f9a1468ba5d50e7d27f2a73a7724a1e77958a422d1e5c0202975d556
Contents?: true
Size: 963 Bytes
Versions: 1
Compression:
Stored size: 963 Bytes
Contents
# frozen_string_literal: true require_relative "../response/contributors_response" module ONEAccess module Request class ContributorsRequestHandler def initialize(url:, limit: PAGE_SIZE) @url = url @limit = limit end def each offset = 0 loop do http_response = Http::HttpClient.get(url, build_params(offset)) response = Response::ContributorsResponse.from_json(http_response.body) response&.data&.each do |contributor| yield contributor end break unless more_records?(response.meta) offset += 1 end end private PAGE_SIZE = 200 attr_reader :url attr_reader :limit def build_params(offset) { limit: limit, offset: offset } end def more_records?(meta) meta.offset < (meta.total / meta.limit).ceil - 1 end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
oneaccess-0.2.0 | lib/oneaccess/request/contributors_request_handler.rb |