Class: Gawk::Engine

Inherits:
Object
  • Object
show all
Defined in:
lib/gawk/engine.rb

Constant Summary collapse

USER_ID =
'gawk'
OOB_URI =
'urn:ietf:wg:oauth:2.0:oob'

Instance Method Summary collapse

Constructor Details

#initialize(scope: 'https://www.googleapis.com/auth/analytics.readonly', secrets_file: 'client_secrets.json', token_file: 'tokens.yaml') ⇒ Engine

Returns a new instance of Engine.



9
10
11
12
13
14
15
16
17
# File 'lib/gawk/engine.rb', line 9

def initialize(scope: 'https://www.googleapis.com/auth/analytics.readonly',
  secrets_file: 'client_secrets.json', token_file: 'tokens.yaml')

  @secrets_file = secrets_file
  @token_file = token_file
  @authorizer = Google::Auth::UserAuthorizer.new(client_id, scope, token_store)
  @service = Google::Apis::AnalyticsreportingV4::AnalyticsReportingService.new
  @service.authorization = auth_client
end

Instance Method Details

#get_reports(requests) ⇒ Object



19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/gawk/engine.rb', line 19

def get_reports(requests)
  report_requests = []
  requests.each do |r|
    report_request = Google::Apis::AnalyticsreportingV4::ReportRequest.new

    report_request.view_id            = r['view_id'].to_s
    report_request.date_ranges        = r['date_ranges'].map {|h| generate_date_range(h)}
    report_request.dimensions         = r['dimensions'].map {|s| generate_dimension(s)}
    report_request.metrics            = r['metrics'].map {|s| generate_metric(s)}
    report_request.filters_expression = r['filters_expression']

    report_requests << report_request

  end

  get_reports_request = \
    Google::Apis::AnalyticsreportingV4::GetReportsRequest.new(report_requests: report_requests)

  response = @service.batch_get_reports(get_reports_request)

  response.reports
end