Sha256: 60386d77f98fac0bab858b16b59eca2d2b5acdc782311b69d617cd7dbf2d25dc

Contents?: true

Size: 1.46 KB

Versions: 13

Compression:

Stored size: 1.46 KB

Contents

# typed: strict
# frozen_string_literal: true

require "nexus/invision/value_object"
require "sorbet-runtime"

module Nexus
  module Invision
    module Resources
      class Page
        extend T::Sig
        extend T::Generic

        include ValueObject

        TResource = type_member { { upper: T::Struct } }

        sig { returns(Integer) }
        attr_reader :page

        sig { returns(Integer) }
        attr_reader :per_page

        sig { returns(Integer) }
        attr_reader :total_results

        sig { returns(Integer) }
        attr_reader :total_pages

        sig { returns(T::Array[TResource]) }
        attr_reader :results

        sig do
          params(
            page: Integer,
            per_page: Integer,
            total_results: Integer,
            total_pages: Integer,
            results: T::Array[TResource],
          ).void
        end
        def initialize(page:, per_page:, total_results:, total_pages:, results:)
          @page = page
          @per_page = per_page
          @total_results = total_results
          @total_pages = total_pages
          @results = results
        end

        sig { override.returns(T::Hash[String, T.untyped]) }
        def serialize
          {
            "page" => @page,
            "perPage" => @per_page,
            "totalResults" => @total_results,
            "totalPages" => @total_pages,
            "results" => @results.map(&:serialize),
          }
        end
      end
    end
  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
nexus-invision-1.11.0 lib/nexus/invision/resources/page.rb
nexus-invision-1.10.2 lib/nexus/invision/resources/page.rb
nexus-invision-1.10.1 lib/nexus/invision/resources/page.rb
nexus-invision-1.10.0 lib/nexus/invision/resources/page.rb
nexus-invision-1.9.0 lib/nexus/invision/resources/page.rb
nexus-invision-1.8.1 lib/nexus/invision/resources/page.rb
nexus-invision-1.8.0 lib/nexus/invision/resources/page.rb
nexus-invision-1.7.0 lib/nexus/invision/resources/page.rb
nexus-invision-1.6.0 lib/nexus/invision/resources/page.rb
nexus-invision-1.5.0 lib/nexus/invision/resources/page.rb
nexus-invision-1.4.0 lib/nexus/invision/resources/page.rb
nexus-invision-1.3.0 lib/nexus/invision/resources/page.rb
nexus-invision-1.2.1 lib/nexus/invision/resources/page.rb