From a091b29211aea1985ab419b869cb7b8b42838330 Mon Sep 17 00:00:00 2001 From: Derrick Date: Mon, 12 Apr 2021 16:30:25 -0700 Subject: [PATCH] feat: add endpoint to return all valid versions metadata --- .../blueprints/client/api.py | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/materializationengine/blueprints/client/api.py b/materializationengine/blueprints/client/api.py index ceed41d2..f177458d 100644 --- a/materializationengine/blueprints/client/api.py +++ b/materializationengine/blueprints/client/api.py @@ -220,6 +220,31 @@ def get(self, datastack_name: str, version: int): schema = AnalysisVersionSchema() return schema.dump(response), 200 +@client_bp.route("/datastack//metadata") +class DatastackMetadata(Resource): + @reset_auth + @auth_required + @client_bp.doc("all valid version metadata", security="apikey") + def get(self, datastack_name: str): + """get materialized metadata for all valid versions + Args: + datastack_name (str): datastack name + Returns: + list: list of metadata dictionaries + """ + aligned_volume_name, pcg_table_name = get_relevant_datastack_info(datastack_name) + session = sqlalchemy_cache.get(aligned_volume_name) + response = ( + session.query(AnalysisVersion) + .filter(AnalysisVersion.datastack == datastack_name) + .filter(AnalysisVersion.valid == True) + .all() + ) + if response is None: + return "No valid versions found", 404 + schema = AnalysisVersionSchema() + return schema.dump(response, many=True), 200 + @client_bp.route("/datastack//version//tables") class FrozenTableVersions(Resource): @reset_auth