Class: TableauRestApi::Resource

Inherits:
Client
  • Object
show all
Includes:
ScheduleSubscription, UserGroup, WorkbookDatasource
Defined in:
lib/tableau_rest_api/resource.rb

Overview

Subclass providing access to Tableau resources. An auth token is requested if missing or expired.

Instance Attribute Summary

Attributes inherited from Client

#config, #token

Instance Method Summary collapse

Methods included from ScheduleSubscription

#create_subscription, #delete_schedule, #delete_subscription, #query_subscription, #schedules, #subscriptions

Methods included from WorkbookDatasource

#datasources, #delete_datasource, #delete_project, #delete_workbook, #get_datasource, #get_workbook, #publish_datasource, #publish_workbook, #query_projects, #query_workbooks, #update_datasource, #update_project, #update_workbook

Methods included from UserGroup

#add_user_to_group, #add_user_to_site, #create_group, #delete_group, #groups, #remove_user_from_group, #remove_user_from_site, #update_group, #update_user, #users_in_group, #users_on_site

Methods inherited from Client

#authorised?, #configure, #initialize, #login, #logout

Methods included from Pagination

#complete?, #first_page?, #next_page, #paginate, #read_pagination_header, #retrieve_additional_pages, #single_page?

Constructor Details

This class inherits a constructor from TableauRestApi::Client

Instance Method Details

#create_site(site) ⇒ Object



26
27
28
29
# File 'lib/tableau_rest_api/resource.rb', line 26

def create_site(site)
  url = build_url 'sites'
  Site.new((post url, site).site, self)
end

#delete_site(site_id) ⇒ Object



36
37
38
39
40
# File 'lib/tableau_rest_api/resource.rb', line 36

def delete_site(site_id)
  url = build_url ['sites', site_id]
  delete url
  @token = nil
end

#server_infoObject



16
17
18
19
# File 'lib/tableau_rest_api/resource.rb', line 16

def server_info
  url = build_url 'serverinfo'
  Server.new((get url).serverInfo)
end

#sitesObject



21
22
23
24
# File 'lib/tableau_rest_api/resource.rb', line 21

def sites
  sites = Proc.new { |resp| resp.sites.site.to_a }
  fetch_paginated_set('sites', sites).map { |site| Site.new(site, self) }
end

#switch_site(site) ⇒ Object



31
32
33
34
# File 'lib/tableau_rest_api/resource.rb', line 31

def switch_site(site)
  url = build_url ['auth', 'switchSite']
  @token = Token.new((post url, site).credentials.token, self.config[:auth_duration])
end