Added Application HolidayViewer
This commit is contained in:
@@ -97,6 +97,13 @@ class RepositoriesDbManager:
|
||||
self.settings_manager.save(self.session, REPOSITORIES_SETTINGS_ENTRY, settings)
|
||||
return repository
|
||||
|
||||
def exists_repository(self, repository_name):
|
||||
if repository_name is None or repository_name == "":
|
||||
raise ValueError("Repository name cannot be empty.")
|
||||
|
||||
settings = self._get_settings()
|
||||
return repository_name in [repo.name for repo in settings.repositories]
|
||||
|
||||
def get_repositories(self):
|
||||
return self._get_settings().repositories
|
||||
|
||||
@@ -141,6 +148,36 @@ class RepositoriesDbManager:
|
||||
repository.tables.remove(table_name)
|
||||
self.settings_manager.save(self.session, REPOSITORIES_SETTINGS_ENTRY, settings)
|
||||
|
||||
def exists_table(self, repository_name: str, table_name: str):
|
||||
if repository_name is None or repository_name == "":
|
||||
raise ValueError("Repository name cannot be empty.")
|
||||
|
||||
if table_name is None or table_name == "":
|
||||
raise ValueError("Table name cannot be empty.")
|
||||
|
||||
settings = self._get_settings()
|
||||
repository = next(filter(lambda r: r.name == repository_name, settings.repositories), None)
|
||||
if repository is None:
|
||||
return False
|
||||
|
||||
return table_name in repository.tables
|
||||
|
||||
def ensure_exists(self, repository_name: str, table_name: str):
|
||||
"""
|
||||
|
||||
:param repository_name:
|
||||
:param table_name:
|
||||
:return:
|
||||
"""
|
||||
try:
|
||||
if not self.exists_table(repository_name, table_name):
|
||||
self.add_table(repository_name, table_name)
|
||||
|
||||
except NameError:
|
||||
self.add_repository(repository_name, [table_name])
|
||||
|
||||
return repository_name, table_name
|
||||
|
||||
def select_repository(self, repository_name: str):
|
||||
"""
|
||||
Select and save the specified repository name in the current session's settings.
|
||||
@@ -172,12 +209,12 @@ class RepositoriesDbManager:
|
||||
settings = self._get_settings()
|
||||
repository = next(filter(lambda r: r.name == repository_name, settings.repositories), None)
|
||||
if repository is None:
|
||||
raise ValueError(f"Repository '{repository_name}' does not exist.")
|
||||
raise NameError(f"Repository '{repository_name}' does not exist.")
|
||||
|
||||
for table_name, must_exist in zip(tables_names, [t1_must_exists, t2_must_exists]):
|
||||
if must_exist:
|
||||
if table_name not in repository.tables:
|
||||
raise ValueError(f"Table '{table_name}' does not exist in repository '{repository_name}'.")
|
||||
raise NameError(f"Table '{table_name}' does not exist in repository '{repository_name}'.")
|
||||
else:
|
||||
if table_name in repository.tables:
|
||||
raise ValueError(f"Table '{table_name}' already exists in repository '{repository_name}'.")
|
||||
|
||||
Reference in New Issue
Block a user