Sha256: 88a9d0a1d277c5f26b70269e917a01108b2d73a6041b9bb57cac02ba8e9677d6

Contents?: true

Size: 1 KB

Versions: 16

Compression:

Stored size: 1 KB

Contents

module PhraseApp
  module InContextEditor
    class ApiCollection
      def initialize(api_client, action, ids=[], query=nil)
        raise "PhraseApp API client can't handle action #{action}" unless api_client.respond_to?(action)

        @api_client = api_client
        @action = action
        @ids = ids
        @query = query
      end

      def collection
        results = []
        page = 1
        per_page = 100
        paginated, err = send_request(page, per_page)
        results << paginated

        while paginated.size == per_page
          break if page > 100

          page = page + 1
          paginated, err = send_request(page, per_page)
          results << paginated if paginated.present?
        end

        results.flatten.uniq
      end

    private
      def send_request(page, per_page)
        if @query.present?
          @api_client.send(@action, *@ids, page, per_page, @query)
        else
          @api_client.send(@action, *@ids, page, per_page)
        end
      end
    end
  end
end

Version data entries

16 entries across 16 versions & 1 rubygems

Version Path
phraseapp-in-context-editor-ruby-1.4.0 lib/phraseapp-in-context-editor-ruby/api_collection.rb
phraseapp-in-context-editor-ruby-1.3.1 lib/phraseapp-in-context-editor-ruby/api_collection.rb
phraseapp-in-context-editor-ruby-1.3.0 lib/phraseapp-in-context-editor-ruby/api_collection.rb
phraseapp-in-context-editor-ruby-1.2.1 lib/phraseapp-in-context-editor-ruby/api_collection.rb
phraseapp-in-context-editor-ruby-1.2.0 lib/phraseapp-in-context-editor-ruby/api_collection.rb
phraseapp-in-context-editor-ruby-1.1.0 lib/phraseapp-in-context-editor-ruby/api_collection.rb
phraseapp-in-context-editor-ruby-1.0.6 lib/phraseapp-in-context-editor-ruby/api_collection.rb
phraseapp-in-context-editor-ruby-1.0.5 lib/phraseapp-in-context-editor-ruby/api_collection.rb
phraseapp-in-context-editor-ruby-1.0.4 lib/phraseapp-in-context-editor-ruby/api_collection.rb
phraseapp-in-context-editor-ruby-1.0.3 lib/phraseapp-in-context-editor-ruby/api_collection.rb
phraseapp-in-context-editor-ruby-1.0.2 lib/phraseapp-in-context-editor-ruby/api_collection.rb
phraseapp-in-context-editor-ruby-1.0.1 lib/phraseapp-in-context-editor-ruby/api_collection.rb
phraseapp-in-context-editor-ruby-1.0.0 lib/phraseapp-in-context-editor-ruby/api_collection.rb
phraseapp-in-context-editor-ruby-1.0.0rc3 lib/phraseapp-in-context-editor-ruby/api_collection.rb
phraseapp-in-context-editor-ruby-1.0.0rc2 lib/phraseapp-in-context-editor-ruby/api_collection.rb
phraseapp-in-context-editor-ruby-1.0.0rc1 lib/phraseapp-in-context-editor-ruby/api_collection.rb