From aa35e766705dc326269dc30cd347d323cde71ce6 Mon Sep 17 00:00:00 2001
From: Nicola Stoira <nicola.stoira@accenture.com>
Date: Tue, 16 Jul 2024 14:33:21 +0200
Subject: [PATCH] Add share_with_einstein and output_format to /Get_projects
 endpoint

---
 api/app/responses.py   | 2 ++
 api/tests/test_main.py | 6 +++---
 lib/database.py        | 5 +++--
 3 files changed, 8 insertions(+), 5 deletions(-)

diff --git a/api/app/responses.py b/api/app/responses.py
index 9af42938..caecbcb1 100644
--- a/api/app/responses.py
+++ b/api/app/responses.py
@@ -251,6 +251,8 @@ def get_responses(endpoint: Endpoint) -> dict:
                                         "data-provider-id": "DATA-PROVIDER-ID",
                                         "created-by": "user",
                                         "is_initialized": True,
+                                        "output_format": "Turtle",
+                                        "share_with_einstein": False,
                                         "uploaded-files": {
                                             "project_specific_schema": [
                                                 {
diff --git a/api/tests/test_main.py b/api/tests/test_main.py
index bb257132..0585a360 100644
--- a/api/tests/test_main.py
+++ b/api/tests/test_main.py
@@ -372,7 +372,7 @@ class ProjectConfigTest(object):
             ]
             assert response.status_code == 200
             assert response.json() == {"projects": [{"project-name": f"{project_one}", "schema-name": f"{project_one}", "data-provider-id": database.config.data_provider_id, "created-by": database.config.api_user,
-                                        "is_initialized": True, 
+                                        "is_initialized": True, "output_format": "Turtle", "share_with_einstein": False,
                                         "uploaded-files": {"project_specific_schema": [{"filename": project_one + "_schema.ttl", 'original_name': 'sphn_schema_2024.1.ttl', 'file_size': '610.3KB', 'versionIRI': 'https://biomedit.ch/rdf/sphn-schema/sphn/2024/2', "owl:imports": owl_imports}],
                                                         'ext_shacls': [{'filename': f'Shacler_{project_one}_shacl.ttl', 'file_size': '683.0KB'}]}}]}
             assert response.json() == initialized_projects
@@ -384,10 +384,10 @@ class ProjectConfigTest(object):
             assert response.status_code == 200
             initialized_projects = database.get_created_projects()['projects']
             expected_result = [{"project-name": f"{project_one}", "schema-name": f"{project_one}", "data-provider-id": database.config.data_provider_id, "created-by": database.config.api_user,
-                                "is_initialized": True, "uploaded-files": {"project_specific_schema": [{"filename": project_one + "_schema.ttl", 'original_name': 'sphn_schema_2024.1.ttl', 'file_size': '610.3KB', 'versionIRI': 'https://biomedit.ch/rdf/sphn-schema/sphn/2024/2', "owl:imports": owl_imports}],
+                                "is_initialized": True, "output_format": "Turtle", "share_with_einstein": False, "uploaded-files": {"project_specific_schema": [{"filename": project_one + "_schema.ttl", 'original_name': 'sphn_schema_2024.1.ttl', 'file_size': '610.3KB', 'versionIRI': 'https://biomedit.ch/rdf/sphn-schema/sphn/2024/2', "owl:imports": owl_imports}],
                                                                         'ext_shacls': [{'filename': f'Shacler_{project_one}_shacl.ttl', 'file_size': '683.0KB'}]}}, 
                                 {"project-name": f"{project_two}", "schema-name": f"{project_two}", "data-provider-id": database.config.data_provider_id, "created-by": database.config.api_user, 
-                                "is_initialized": True, "uploaded-files": {"project_specific_schema": [{"filename": project_two + "_schema.ttl", 'original_name': 'sphn_schema_2024.1.ttl', 'file_size': '610.3KB', 'versionIRI': 'https://biomedit.ch/rdf/sphn-schema/sphn/2024/2', "owl:imports": owl_imports}]}}]
+                                "is_initialized": True, "output_format": "Turtle", "share_with_einstein": False, "uploaded-files": {"project_specific_schema": [{"filename": project_two + "_schema.ttl", 'original_name': 'sphn_schema_2024.1.ttl', 'file_size': '610.3KB', 'versionIRI': 'https://biomedit.ch/rdf/sphn-schema/sphn/2024/2', "owl:imports": owl_imports}]}}]
             for project in response.json()['projects']:
                 assert project in expected_result
                 assert project in initialized_projects
diff --git a/lib/database.py b/lib/database.py
index efb7dab5..1d7569f6 100644
--- a/lib/database.py
+++ b/lib/database.py
@@ -320,7 +320,7 @@ class Database(object):
         Returns map with details of created projects
         """
         self.create_connection()
-        sql = "SELECT project_name, data_provider_id, api_user, initialized FROM configuration"
+        sql = "SELECT project_name, data_provider_id, api_user, initialized, output_format, share_with_einstein FROM configuration"
         self.cursor.execute(sql)
         records = self.cursor.fetchall()
         self.close_connection()
@@ -328,7 +328,8 @@ class Database(object):
         for project in records:
             project_name = project[0]
             bucket = Buckets.CONNECTOR.value
-            project_dict = {"project-name": project_name, "schema-name": project_name, "data-provider-id": project[1], "created-by": project[2], "is_initialized": project[3], "uploaded-files": {}}
+            project_dict = {"project-name": project_name, "schema-name": project_name, "data-provider-id": project[1], "created-by": project[2], "is_initialized": project[3], "output_format": project[4], 
+                            "share_with_einstein": project[5], "uploaded-files": {}}
             
             schemas = [schema for schema in self.config.minio_client.list_objects(bucket_name=bucket, prefix=f"{project_name}/Schema/")]
             if schemas:
-- 
GitLab