Sha256: ea3de62c64e131b120ce4a1da10865d9eeb741e2c017840dc745888045dafda2

Contents?: true

Size: 1.04 KB

Versions: 7

Compression:

Stored size: 1.04 KB

Contents

# frozen_string_literal: true

module GoogleAnalyticsV4Api
  class Client

    attr_accessor :access_token

    def initialize(access_token)
      @access_token = access_token
    end

    def accounts
      @accounts ||= GoogleAnalyticsV4Api::Account.parse_list(self, get("/accounts"))
    end

    def account(account_name)
      accounts.find { |account| account.name == account_name }
    end

    def properties(account_name)
      @properties ||= Hash.new do |h, key|
        h[key] = GoogleAnalyticsV4Api::Property.parse_list(self, get("/properties", { filter: "parent:#{key}"}))
      end
      @properties[account_name]
    end

    def property(property_name)
      unless @properties.nil?
        property = @properties.find { |property| property.name == property_name }
        return property unless property.nil?
      end

      GoogleAnalyticsV4Api::Property.parse(self, get("/#{property_name}"))
    end

    private
    def get(path, params = {})
      Request.get(access_token: @access_token, path: path, params: params).body
    end

  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
google_analytics_v4_api-0.0.9 lib/google_analytics_v4_api/client.rb
google_analytics_v4_api-0.0.8 lib/google_analytics_v4_api/client.rb
google_analytics_v4_api-0.0.7 lib/google_analytics_v4_api/client.rb
google_analytics_v4_api-0.0.6 lib/google_analytics_v4_api/client.rb
google_analytics_v4_api-0.0.5 lib/google_analytics_v4_api/client.rb
google_analytics_v4_api-0.0.4 lib/google_analytics_v4_api/client.rb
google_analytics_v4_api-0.0.3 lib/google_analytics_v4_api/client.rb