diff --git a/.gitignore b/.gitignore index 18e9a527..adef69c3 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,4 @@ venv/ *.pyc logs.log config.json +.vscode/ diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 00000000..906aecb3 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "python.pythonPath": "/root/venvs/datagateway-api-36/bin/python" +} \ No newline at end of file diff --git a/common/backends.py b/common/backends.py index c8db0667..6b65d471 100644 --- a/common/backends.py +++ b/common/backends.py @@ -1,4 +1,5 @@ from common.database_backend import DatabaseBackend +from common.python_icat_backend import PythonICATBackend from common.backend import Backend from common.config import config import sys @@ -7,6 +8,8 @@ if backend_type == "db": backend = DatabaseBackend() +elif backend_type == "python_icat": + backend = PythonICATBackend() else: sys.exit( f"Invalid config value '{backend_type}' for config option backend") diff --git a/common/python_icat_backend.py b/common/python_icat_backend.py new file mode 100644 index 00000000..96935d0e --- /dev/null +++ b/common/python_icat_backend.py @@ -0,0 +1,89 @@ +from common.backend import Backend +from common.helpers import requires_session_id, queries_records +#from common.python_icat_helpers import + + +class PythonICATBackend(Backend): + """ + Class that contains functions to access and modify data in an ICAT database directly + """ + + def login(self, credentials, mnemonic): + pass + + @requires_session_id + def get_session_details(self, session_id): + pass + + @requires_session_id + def refresh(self, session_id): + pass + + @requires_session_id + @queries_records + def logout(self, session_id): + pass + + @requires_session_id + @queries_records + def get_with_filters(self, session_id, table, filters): + pass + + @requires_session_id + @queries_records + def create(self, session_id, table, data): + pass + + @requires_session_id + @queries_records + def update(self, session_id, table, data): + pass + + @requires_session_id + @queries_records + def get_one_with_filters(self, session_id, table, filters): + pass + + @requires_session_id + @queries_records + def count_with_filters(self, session_id, table, filters): + pass + + @requires_session_id + @queries_records + def get_with_id(self, session_id, table, id): + pass + + @requires_session_id + @queries_records + def delete_with_id(self, session_id, table, id): + pass + + @requires_session_id + @queries_records + def update_with_id(self, session_id, table, id, data): + pass + + @requires_session_id + @queries_records + def get_instrument_facilitycycles_with_filters(self, session_id, instrument_id, filters): + pass + + @requires_session_id + @queries_records + def count_instrument_facilitycycles_with_filters(self, session_id, instrument_id, filters): + pass + #return get_facility_cycles_for_instrument_count(instrument_id, filters) + + @requires_session_id + @queries_records + def get_instrument_facilitycycle_investigations_with_filters(self, session_id, instrument_id, facilitycycle_id, filters): + pass + #return get_investigations_for_instrument_in_facility_cycle(instrument_id, facilitycycle_id, filters) + + @requires_session_id + @queries_records + def count_instrument_facilitycycles_investigations_with_filters(self, session_id, instrument_id, facilitycycle_id, filters): + pass + #return get_investigations_for_instrument_in_facility_cycle_count(instrument_id, facilitycycle_id, filters) + diff --git a/common/python_icat_helpers.py b/common/python_icat_helpers.py new file mode 100644 index 00000000..e69de29b