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