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, #has_multiple_pages?, #next_page, #paginate, #read_pagination_header, #retrieve_additional_pages

Constructor Details

This class inherits a constructor from TableauRestApi::Client

Instance Method Details

#create_site(site) ⇒ Object



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

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

#delete_site(site_id) ⇒ Object



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

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
25
# File 'lib/tableau_rest_api/resource.rb', line 21

def sites
  resp = get build_url('sites')
  sites = extract_sites(resp)
  sites = retrieve_additional_pages(resp, sites, 'sites', :extract_sites) 
end

#switch_site(site) ⇒ Object



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

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