MCPcopy Create free account
hub / github.com/CloudOrc/SolidUI / get_table_data

Method get_table_data

solidui/views/metadata/api.py:110–150  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

108 @expose('/queryTableData', methods=("GET",))
109 @safe
110 def get_table_data(self) -> FlaskResponse:
111 data_source_name = request.args.get('dataSourceName')
112 database = request.args.get('database')
113 table_name = request.args.get('tableName')
114 type_name = request.args.get('typeName', default=None)
115 # Call the service method to get table data. You need to implement this logic
116 data_source = DataSourceDAO.get_data_source_name(data_source_name)
117 if data_source is None:
118 return self.handle_error(SolidUIErrorType.QUERY_DATASOURCE_ERROR)
119
120 data_source_type = DataSourceTypeDAO.get_id(data_source.datasource_type_id)
121 if data_source_type is None:
122 return self.handle_error(SolidUIErrorType.QUERY_DATASOURCE_TYPE_ERROR)
123
124 # Parse the JSON parameters
125 params = json.loads(data_source.parameter)
126
127 # Create a JDBC client
128 jdbc_client = JdbcClientFactory.create_client(
129 db_type=data_source_type.name, # Assuming MySQL for example
130 host=params.get("host"),
131 port=params.get("port"),
132 username=params.get("username"),
133 password=params.get("password"),
134 database=params.get("database"),
135 extra_params=params.get("params", {})
136 )
137
138 select_all_data_sql = jdbc_client.generate_select_all_data_sql(database, table_name)
139 select_result = JdbcClientFactory.run_query(jdbc_client, select_all_data_sql)
140
141 # Transform the result into the desired format
142 if not select_result or len(select_result) == 1:
143 return self.handle_error(SolidUIErrorType.QUERY_METADATA_SQL_ERROR)
144
145 field_value_results = []
146 columns = select_result[0]
147 for row in select_result[1:]:
148 field_value_results.append(dict(zip(columns, row)))
149
150 return self.response_format(data=field_value_results)
151
152 @expose('/querySql', methods=("GET",))
153 @safe

Callers

nothing calls this directly

Calls 9

get_data_source_nameMethod · 0.80
handle_errorMethod · 0.80
get_idMethod · 0.80
create_clientMethod · 0.80
appendMethod · 0.80
getMethod · 0.45
run_queryMethod · 0.45
response_formatMethod · 0.45

Tested by

no test coverage detected