Skip to content

Commit 47cbe61

Browse files
author
Nicole Arcolino
committed
adding sample file for favorites, issue #737
1 parent 1eeaca8 commit 47cbe61

File tree

1 file changed

+158
-0
lines changed

1 file changed

+158
-0
lines changed

samples/explore_favorites.py

Lines changed: 158 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,158 @@
1+
# This script demonstrates how to get all favorites, or add/delete a favorite.
2+
# favorites_item and favorites_endpoint may be updated
3+
# these method examples were made prior to any updates to the favorites code
4+
5+
import argparse
6+
import logging
7+
import tableauserverclient as TSC
8+
9+
def main():
10+
11+
parser = argparse.ArgumentParser(description="Explore datasource functions supported by the Server API.")
12+
# Common options; please keep those in sync across all samples
13+
parser.add_argument("--server", "-s", required = True, help = "server address")
14+
parser.add_argument("--site", "-S", help = "site name")
15+
parser.add_argument(
16+
"--token-name", "-p", required = True, help = "name of the personal access token used to sign into the server"
17+
)
18+
parser.add_argument(
19+
"--token-value", "-v", required = True, help = "value of the personal access token used to sign into the server"
20+
)
21+
parser.add_argument(
22+
"--logging-level",
23+
"-l",
24+
choices = ["debug", "info", "error"],
25+
default = "error",
26+
help = "desired logging level (set to error by default)",
27+
)
28+
29+
args = parser.parse_args()
30+
31+
# Set logging level based on user input, or error by default
32+
logging_level = getattr(logging, args.logging_level.upper())
33+
logging.basicConfig(level = logging_level)
34+
35+
# SIGN IN
36+
tableau_auth = TSC.PersonalAccessTokenAuth(args.token_name, args.token_value, site_id = args.site)
37+
server = TSC.Server(args.server, use_server_version = True)
38+
with server.auth.sign_in(tableau_auth):
39+
40+
def get(self, user_item: "UserItem", req_options: Optional["RequestOptions"] = None) -> None:
41+
# specify user
42+
user = server.users.get_by_id('96d4fd52-5169-4de5-hapa-fe90fae2018p')
43+
# get all favorites on site
44+
print("Getting all favorites for user: {}".format(user.id))
45+
server.favorites.get(user)
46+
# return favorites
47+
print("Favorites for user: {}".format(user.id))
48+
print(user.favorites)
49+
50+
def add_favorite_workbook(self, user_item: "UserItem", workbook_item: "WorkbookItem") -> None:
51+
# get list of workbooks
52+
all_workbook_items, pagination_item = server.workbooks.get()
53+
# specify user
54+
user = server.users.get_by_id('96d4fd52-5169-4de5-hapa-fe90fae2018p')
55+
# add to favorites
56+
if all_workbook_items:
57+
my_workbook = all_workbook_items[0]
58+
add_workbook = server.favorites.add_favorite_workbook(user, my_workbook)
59+
print("Workbook added to favorites. Workbook Name: {}, Workbook ID: {}".format(my_workbook.name, my_workbook.id))
60+
61+
def add_favorite_view(self, user_item: "UserItem", view_item: "ViewItem") -> None:
62+
# get list of views
63+
all_view_items, pagination_item = server.views.get()
64+
# specify user
65+
user = server.users.get_by_id('96d4fd52-5169-4de5-hapa-fe90fae2018p')
66+
# add to favorites
67+
if all_view_items:
68+
my_view = all_view_items[0]
69+
add_view = server.favorites.add_favorite_view(user, my_view)
70+
print("View added to favorites. View Name: {}, View ID: {}".format(my_view.name, my_view.id))
71+
72+
def add_favorite_datasource(self, user_item: "UserItem", datasource_item: "DatasourceItem") -> None:
73+
# get list of datasources
74+
all_datasource_items, pagination_item = server.datasources.get()
75+
# specify user
76+
user = server.users.get_by_id('96d4fd52-5169-4de5-hapa-fe90fae2018p')
77+
# add to favorites
78+
if all_datasource_items:
79+
my_datasource = all_datasource_items[0]
80+
add_datasource = server.favorites.add_favorite_datasource(user, my_datasource)
81+
print("Datasource added to favorites. Datasource Name: {}, Datasource ID: {}".format(my_datasource.name, my_datasource.id))
82+
83+
def add_favorite_project(self, user_item: "UserItem", project_item: "ProjectItem") -> None:
84+
# get list of projects
85+
all_project_items, pagination_item = server.projects.get()
86+
# specify user
87+
user = server.users.get_by_id('96d4fd52-5169-4de5-hapa-fe90fae2018p')
88+
# add to favorites
89+
if all_project_items:
90+
my_project = all_project_items[0]
91+
add_project = server.favorites.add_favorite_project(user, my_project)
92+
print("Project added to favorites. Project Name: {}, Project ID: {}".format(my_project.name, my_project.id))
93+
94+
def add_favorite_flow(self, user_item: "UserItem", flow_item: "FlowItem") -> None:
95+
# get list of flows
96+
all_flow_items, pagination_item = server.flows.get()
97+
# specify user
98+
user = server.users.get_by_id('96d4fd52-5169-4de5-hapa-fe90fae2018p')
99+
# add to favorites
100+
if all_flow_items:
101+
my_flow = all_flow_items[0]
102+
add_flow = server.favorites.add_favorite_flow(user, my_flow)
103+
print("Flow added to favorites. Flow Name: {}, Flow ID: {}".format(my_flow.name, my_flow.id))
104+
105+
def delete_favorite_workbook(self, user_item: "UserItem", workbook_item: "WorkbookItem") -> None:
106+
# get list of workbooks
107+
all_workbook_items, pagination_item = server.workbooks.get()
108+
# specify user
109+
user = server.users.get_by_id('96d4fd52-5169-4de5-hapa-fe90fae2018p')
110+
# delete from favorites
111+
if all_workbook_items:
112+
my_workbook = all_workbook_items[0]
113+
delete_workbook = server.favorites.delete_favorite_workbook(user, my_workbook)
114+
print("Workbook deleted from favorites. Workbook Name: {}, Workbook ID: {}".format(my_workbook.name, my_workbook.id))
115+
116+
def delete_favorite_view(self, user_item: "UserItem", view_item: "ViewItem") -> None:
117+
# get list of views
118+
all_view_items, pagination_item = server.views.get()
119+
# specify user
120+
user = server.users.get_by_id('96d4fd52-5169-4de5-hapa-fe90fae2018p')
121+
# delete from favorites
122+
if all_view_items:
123+
my_view = all_view_items[0]
124+
delete_view = server.favorites.delete_favorite_view(user, my_view)
125+
print("View deleted from favorites. View Name: {}, View ID: {}".format(my_view.name, my_view.id))
126+
127+
def delete_favorite_datasource(self, user_item: "UserItem", datasource_item: "DatasourceItem") -> None:
128+
# get list of datasources
129+
all_datasource_items, pagination_item = server.datasources.get()
130+
# specify user
131+
user = server.users.get_by_id('96d4fd52-5169-4de5-hapa-fe90fae2018p')
132+
# delete from favorites
133+
if all_datasource_items:
134+
my_datasource = all_datasource_items[0]
135+
delete_datasource = server.favorites.delete_favorite_datasource(user, my_datasource)
136+
print("Datasource deleted from favorites. Datasource Name: {}, Datasource ID: {}".format(my_datasource.name, my_datasource.id))
137+
138+
def delete_favorite_project(self, user_item: "UserItem", project_item: "ProjectItem") -> None:
139+
# get list of projects
140+
all_project_items, pagination_item = server.projects.get()
141+
# specify user
142+
user = server.users.get_by_id('96d4fd52-5169-4de5-hapa-fe90fae2018p')
143+
# delete from favorites favorites
144+
if all_project_items:
145+
my_project = all_project_items[0]
146+
delete_project = server.favorites.delete_favorite_project(user, my_project)
147+
print("Project deleted from favorites. Project Name: {}, Project ID: {}".format(my_project.name, my_project.id))
148+
149+
def delete_favorite_flow(self, user_item: "UserItem", flow_item: "FlowItem") -> None:
150+
# get list of flows
151+
all_flow_items, pagination_item = server.flows.get()
152+
# specify user
153+
user = server.users.get_by_id('96d4fd52-5169-4de5-hapa-fe90fae2018p')
154+
# delete from favorites
155+
if all_flow_items:
156+
my_flow = all_flow_items[0]
157+
delete_flow = server.favorites.delete_favorite_flow(user, my_flow)
158+
print("Flow deleted from favorites. Flow Name: {}, Flow ID: {}".format(my_flow.name, my_flow.id))

0 commit comments

Comments
 (0)