Sha256: 52d70ccc3b40601732417d71a0e772202cce8de6aee16d1a5a82dc57282fe48b

Contents?: true

Size: 1011 Bytes

Versions: 19

Compression:

Stored size: 1011 Bytes

Contents

require_relative 'types/date_details'

module Snov
  class GetUserLists
    include Enumerable

    attr_reader :client

    def initialize(client: Snov.client)
      @client = client
    end

    def each(&block)
      all.each(&block)
    end

    def all
      @all ||= raw_result.map { |result| UserList.new(result) }
    end

    def raw_result
      @raw_result ||= client.get("/v1/get-user-lists").map do |val|
        val.deep_transform_keys! { |key| key.underscore }
      end
    end

    class UserList
      include ActiveModel::Model

      attr_accessor :id, :name, :is_deleted, :contacts
      attr_reader :creation_date, :deletion_date

      def creation_date=(val)
        @creation_date = Types::DateDetails.new(val.to_hash)
      end

      def deletion_date=(val)
        @deletion_date = val
        @deletion_date = Types::DateDetails.new(val.to_hash) if val
      end

      def to_h
        { id: id, is_deleted: is_deleted, name: name, contacts: contacts }
      end
    end
  end
end

Version data entries

19 entries across 19 versions & 1 rubygems

Version Path
snov-0.6.5 lib/snov/get_user_lists.rb
snov-0.6.4 lib/snov/get_user_lists.rb
snov-0.6.3 lib/snov/get_user_lists.rb
snov-0.6.2 lib/snov/get_user_lists.rb
snov-0.6.1 lib/snov/get_user_lists.rb
snov-0.6.0 lib/snov/get_user_lists.rb
snov-0.5.0 lib/snov/get_user_lists.rb
snov-0.4.1 lib/snov/get_user_lists.rb
snov-0.4.0 lib/snov/get_user_lists.rb
snov-0.3.2 lib/snov/get_user_lists.rb
snov-0.3.1 lib/snov/get_user_lists.rb
snov-0.3.0 lib/snov/get_user_lists.rb
snov-0.2.4 lib/snov/get_user_lists.rb
snov-0.2.3 lib/snov/get_user_lists.rb
snov-0.2.2 lib/snov/get_user_lists.rb
snov-0.2.1 lib/snov/get_user_lists.rb
snov-0.2.0 lib/snov/get_user_lists.rb
snov-0.1.1 lib/snov/get_user_lists.rb
snov-0.1.0 lib/snov/get_user_lists.rb