Skip to content

Implement command line and url parameters for get/export - #175

Merged
jacalata merged 6 commits into
developmentfrom
jac/get-url-filter
Sep 12, 2022
Merged

Implement command line and url parameters for get/export#175
jacalata merged 6 commits into
developmentfrom
jac/get-url-filter

Conversation

@jacalata

@jacalata jacalata commented Sep 9, 2022

Copy link
Copy Markdown
Contributor
  • refresh parameter is used to set maxAge
  • filters can be set either with --filter option or in url parameters
  • Height/width parameters are not yet implemented, b/c they are not available in the underlying REST API
  • orientation can be set in get command

@github-actions

github-actions Bot commented Sep 9, 2022

Copy link
Copy Markdown

Coverage

Coverage Report
FileStmtsMissCoverMissing
tabcmd
   __main__.py777 0%
   tabcmd.py121212 0%
tabcmd/commands
   commands.py101010 0%
   constants.py591111 81%
   server.py1262525 80%
tabcmd/commands/auth
   session.py2784141 85%
tabcmd/commands/datasources_and_workbooks
   datasources_and_workbooks_command.py901616 82%
   delete_command.py591616 73%
   export_command.py1262727 79%
   get_url_command.py1524343 72%
   publish_command.py571616 72%
   runschedule_command.py2077 65%
tabcmd/commands/extracts
   create_extracts_command.py3955 87%
   decrypt_extracts_command.py2622 92%
   delete_extracts_command.py3666 83%
   encrypt_extracts_command.py2622 92%
   reencrypt_extracts_command.py2622 92%
   refresh_extracts_command.py672626 61%
tabcmd/commands/group
   create_group_command.py2855 82%
   delete_group_command.py2622 92%
tabcmd/commands/help
   help_command.py472626 45%
tabcmd/commands/project
   create_project_command.py4599 80%
   delete_project_command.py3444 88%
   publish_samples_command.py2744 85%
tabcmd/commands/site
   create_site_command.py3577 80%
   delete_site_command.py2422 92%
   edit_site_command.py3722 95%
   list_command.py331818 45%
   list_sites_command.py2922 93%
tabcmd/commands/user
   create_site_users.py4555 89%
   create_users_command.py5144 92%
   delete_site_users_command.py4255 88%
   user_data.py2103030 86%
tabcmd/execution
   _version.py222 0%
   global_options.py1362323 83%
   localize.py5788 86%
   logger_config.py4066 85%
   parent_parser.py4633 93%
   tabcmd_controller.py3955 87%
TOTAL235444681% 

return matching_workbooks[0]

@staticmethod
def apply_values_from_url_params(request_options: TSC.PDFRequestOptions, url, logger) -> None:

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am assuming that the url type is a string. If yes, can we be sure that the url will always be decoded at this point in the code. Also, is there a url library in python that can abstract getting params from urls that we could use instead?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

it is a string, yes. It's not a full url, it's the representation of the workbook/view as it would be in a url (tabcmd get "/views/Sales_Analysis/Sales_Report.png") - I'm actually not quite sure how we handle encoding yet and have to do some comparison with behaviors in the original tabcmd, but it's possible a proper library will be better.

# ExportCommand.log_stack(logger) # type: ignore

@staticmethod
def apply_filter_value(request_options: TSC.PDFRequestOptions, value: str, logger) -> None:

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can the apply_filter_value and apply_option_value methods be moved to a class that is more relevant ?

def apply_option_value(request_options: TSC.PDFRequestOptions, value: str, logger) -> None:
logger.trace("handling url option {}".format(value))
setting = value.split("=")
if ":iid" == setting[0]:

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggestion: this block might read better inside a switch case

@jacalata
jacalata merged commit 9aea40f into development Sep 12, 2022
@jacalata
jacalata deleted the jac/get-url-filter branch September 12, 2022 23:06
jacalata added a commit that referenced this pull request Nov 10, 2022
Dropped support for python < 3.9
Changed argument from "token" to "token-value" so it is not a substring of "token-name", remove the 2-letter short arguments

Release 2.0.6
* add step to list dependencies for licensing
* Defect 1427376: [Tabcmd WAM] --save-db-password flag thinks it should get an argument (#134)
* Fix exit_with_error handling (#137)
* TFS 1428581 publish project (#139)
* Defect 1426885: [Tabcmd WAM] addusers and removeusers error, fix deletegroup (#140)
* clearly indicate when using the default site (#141)
* Fix export success log message params (#142)
* Jac/tfs 1428582 create edit site (#146)
* Fix get view, get csv file extensions (#143)
* Change install destination to /tabcmd instead of /src (#150)
* Defect 1428581: [Tabcmd WAM] Publishing to projects other than default throws an error  (#145)
* Jac/delete command (#144)
* Jac/e2e test workflow (#154)
* Add command to list items of a given content type (#153)
* make export use filters, add tests (#164)
* Fix some e2e tests (#166)
* Trace logging and bug fix (#165)

Release 2.0.7
* Implement command line and url parameters for get/export (#175)
* recognize more values for yes on command line (#173)
* fully port to pyproject.toml (#182)
* implement pdf layout/page type (#184, #169)
* tfs 1427025: Confusing error message related to sign-in (#187), (#190)
* stop duplicate logging in session
* extract encryption defaults to false (#193)
* call sites endpoint correctly (#194)
* publish data source to Tableau Cloud for published live connection with Tableau Bridge (#195)

Co-authored-by: Brian Cantoni <bcantoni@salesforce.com>
Co-authored-by: Bhuvnesh Singh <bhuvnesh.singh@salesforce.com>
jacalata added a commit that referenced this pull request Dec 16, 2022
* Get-Url and Export use same url parameters
* some logging cleanup
* Fixes #173
* Partial fix for #169
* refactor to re-use option and parameter parsing, save_to_file methods
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants