|
46 | 46 | from typing import List, Literal, NotRequired, TextIO, TypedDict |
47 | 47 |
|
48 | 48 | from .server_context import ServerContext |
49 | | -from .utils import waf_encode |
| 49 | +from .utils import waf_encode, transform_options |
50 | 50 |
|
51 | 51 | _default_timeout = 60 * 5 # 5 minutes |
52 | 52 |
|
@@ -706,38 +706,49 @@ def move_rows( |
706 | 706 | ) |
707 | 707 |
|
708 | 708 |
|
709 | | -@dataclass |
710 | | -class GetQueriesOptions: |
711 | | - include_columns: bool |
712 | | - include_system_queries: bool |
713 | | - include_title: bool |
714 | | - include_user_queries: bool |
715 | | - include_view_data_url: bool |
716 | | - query_detail_columns: bool |
717 | | - |
718 | | - def as_dict(self): |
719 | | - return { |
720 | | - "includeColumns": self.include_columns, |
721 | | - "includeSystemQueries": self.include_system_queries, |
722 | | - "includeTitle": self.include_title, |
723 | | - "includeUserQueries": self.include_user_queries, |
724 | | - "includeViewDataUrl": self.include_view_data_url, |
725 | | - "queryDetailColumns": self.query_detail_columns, |
726 | | - } |
| 709 | +get_queries_fields = [ |
| 710 | + "schema_name", |
| 711 | + "include_columns", |
| 712 | + "include_system_queries", |
| 713 | + "include_title", |
| 714 | + "include_user_queries", |
| 715 | + "include_view_data_url", |
| 716 | + "query_detail_columns", |
| 717 | +] |
727 | 718 |
|
728 | 719 |
|
729 | 720 | def get_queries( |
730 | 721 | server_context: ServerContext, |
731 | 722 | schema_name: str, |
732 | 723 | container_path: str = None, |
733 | | - options: GetQueriesOptions = None, |
734 | 724 | timeout=_default_timeout, |
| 725 | + **kwargs, |
735 | 726 | ) -> dict: |
| 727 | + """ |
| 728 | + :param server_context: A LabKey server context. See utils.create_server_context. |
| 729 | + :param schema_name: schema of table |
| 730 | + :param container_path: folder path if not already part of server_context |
| 731 | + :param timeout: Request timeout in seconds (defaults to 300s) |
| 732 | + :param kwargs: Optional parameters supported by this API: |
| 733 | + include_columns: boolean, if set to False, information about the available columns in this query will not be |
| 734 | + included in the results. Default is True. |
| 735 | + include_system_queries: boolean, if set to false, system-defined queries will not be included in the results. |
| 736 | + Default is True. |
| 737 | + include_title: boolean, if set to False, no custom query titles will be included. Instead, titles will be |
| 738 | + identical to names. Default is True. |
| 739 | + include_user_queries: boolean, if set to False, user-defined queries will not be included in the results. |
| 740 | + Default is True. |
| 741 | + include_view_data_url: boolean, if set to False, view data URLs will not be included in the results. |
| 742 | + Default is True. |
| 743 | + query_detail_columns: boolean, if set to True, and includeColumns is set to True, information about the |
| 744 | + available columns will be the same details as specified by getQueryDetails for columns. Defaults to False. |
| 745 | + :return: dict |
| 746 | + """ |
736 | 747 | url = server_context.build_url("query", "getQueries.api", container_path=container_path) |
737 | 748 | payload = {"schemaName": schema_name} |
738 | 749 |
|
739 | | - if options is not None: |
740 | | - payload = {*payload, *options.as_dict()} |
| 750 | + if len(kwargs) > 0: |
| 751 | + payload = {**payload, **transform_options(kwargs, get_queries_fields)} |
741 | 752 |
|
742 | 753 | return server_context.make_request(url, payload, timeout=timeout) |
743 | 754 |
|
@@ -983,7 +994,23 @@ def get_queries( |
983 | 994 | self, |
984 | 995 | schema_name: str, |
985 | 996 | container_path: str = None, |
986 | | - options: GetQueriesOptions = None, |
| 997 | + include_columns: bool = None, |
| 998 | + include_system_queries: bool = None, |
| 999 | + include_title: bool = None, |
| 1000 | + include_user_queries: bool = None, |
| 1001 | + include_view_data_url: bool = None, |
| 1002 | + query_detail_columns: bool = None, |
987 | 1003 | timeout=_default_timeout, |
988 | 1004 | ): |
989 | | - return get_queries(self.server_context, schema_name, container_path, options, timeout) |
| 1005 | + return get_queries( |
| 1006 | + self.server_context, |
| 1007 | + schema_name, |
| 1008 | + container_path, |
| 1009 | + timeout, |
| 1010 | + include_columns=include_columns, |
| 1011 | + include_system_queries=include_system_queries, |
| 1012 | + include_title=include_title, |
| 1013 | + include_user_queries=include_user_queries, |
| 1014 | + include_view_data_url=include_view_data_url, |
| 1015 | + query_detail_columns=query_detail_columns, |
| 1016 | + ) |
0 commit comments