From 817c67a2e5e3e172ed9293c611177bcc4ae14104 Mon Sep 17 00:00:00 2001
From: Ubbo Veentjer <veentjer@sub.uni-goettingen.de>
Date: Mon, 28 Feb 2022 13:02:49 +0100
Subject: [PATCH] refactor: dav provider refactoring cont'd

---
 src/repdav/textgrid_dav_provider.py       | 17 +++++++++--------
 src/repdav/textgrid_named_dav_provider.py | 15 ++++-----------
 2 files changed, 13 insertions(+), 19 deletions(-)

diff --git a/src/repdav/textgrid_dav_provider.py b/src/repdav/textgrid_dav_provider.py
index afe15bb..8b5d969 100644
--- a/src/repdav/textgrid_dav_provider.py
+++ b/src/repdav/textgrid_dav_provider.py
@@ -26,15 +26,15 @@ class TextgridRoot(DAVCollection):
     def __init__(self, path, environ):
         DAVCollection.__init__(self, path, environ)
         self._sid = environ["wsgidav.auth.user_name"]
+        config = TextgridConfig()
+        self._auth = TextgridAuth(config)
 
     def get_display_info(self):
         return {"type": "Textgrid root collection"}
 
     def get_member_names(self):
         _logger.debug("Called TextgridRoot.get_member_names(self).")
-        config = TextgridConfig()
-        auth = TextgridAuth(config)
-        projects = tuple(auth.list_assigned_projects(self._sid))
+        projects = tuple(self._auth.list_assigned_projects(self._sid))
         _logger.debug("MY PROJECTS: %s", projects)
         return projects
 
@@ -79,8 +79,9 @@ class TextgridProject(DAVCollection):
         _logger.debug("Called TextgridProject.__init__(self, %s, environ).", path)
         DAVCollection.__init__(self, path, environ)
         self._sid = environ["wsgidav.auth.user_name"]
-        self._tgconfig = TextgridConfig()
-        self._tgsearch = TextgridSearch(self._tgconfig.search)
+        config = TextgridConfig()
+        self._tgsearch = TextgridSearch(config.search)
+        self._project_id = self.path.split("/")[-1]
 
     def create_empty_resource(self, name):
         pass
@@ -100,7 +101,7 @@ class TextgridProject(DAVCollection):
         # return names
         #
         # path resolution has to be rewritten before we can work with resource titles
-        response = self._tgsearch.list_project_root(self.path.split("/")[-1], self._sid)
+        response = self._tgsearch.list_project_root(self.project_id, self._sid)
         names = []
         for result in response.result:
             names.append(result.object_value.generic.generated.textgrid_uri.value)
@@ -170,8 +171,8 @@ class TextgridAggregation(DAVCollection):
         DAVCollection.__init__(self, path, environ)
         self._sid = environ["wsgidav.auth.user_name"]
         self._info = info
-        self._tgconfig = TextgridConfig()
-        self._tgsearch = TextgridSearch(self._tgconfig.search)
+        config = TextgridConfig()
+        self._tgsearch = TextgridSearch(config.search)
         self._tguri = self.path.split("/")[-1]
 
     def create_empty_resource(self, name):
diff --git a/src/repdav/textgrid_named_dav_provider.py b/src/repdav/textgrid_named_dav_provider.py
index b1a1e42..2dbc7c7 100644
--- a/src/repdav/textgrid_named_dav_provider.py
+++ b/src/repdav/textgrid_named_dav_provider.py
@@ -1,13 +1,9 @@
 import logging
 from pprint import pformat
 
-from tgclients.config import TextgridConfig
-from tgclients.crud import TextgridCRUD
 from tgclients.metadata import TextgridMetadata
-from tgclients.auth import TextgridAuth
 from wsgidav.util import join_uri
 
-from repdav.stream_tools import FileLikeQueue
 from repdav.textgrid_dav_provider import (
     TextgridAggregation,
     TextgridProject,
@@ -43,10 +39,7 @@ class TextgridNamedRoot(TextgridRoot):
     """
 
     def __init__(self, path, environ):
-        # TODO: do not overwrite but move to parent class
         super().__init__(path, environ)
-        config = TextgridConfig()
-        self._auth = TextgridAuth(config)
 
     def get_member_names(self):
         _logger.debug("Called TextgridNamedRoot.get_member_names(self).")
@@ -68,13 +61,13 @@ class TextgridNamedProject(TextgridProject):
         _logger.debug("Called TextgridNamedProject.__init__(self, %s, environ).", path)
         super().__init__(path, environ)
         self._tgmeta = TextgridMetadata()
+        name = self.path.split("/")[-1]
+        # the projectID is found between square brackets at the end of the name string
+        self._project_id = name[name.rfind("[") + 1 : name.rfind("]")]
 
     def get_member_names(self):
         _logger.debug("Called TextgridNamedProject.get_member_names(self).")
-        name = self.path.split("/")[-1]
-        # the projectID is found between square brackets at the end of the name string
-        project_id = name[name.rfind("[") + 1 : name.rfind("]")]
-        response = self._tgsearch.list_project_root(project_id, self._sid)
+        response = self._tgsearch.list_project_root(self._project_id, self._sid)
         names = []
         for result in response.result:
             names.append(self._tgmeta.filename_from_metadata(result))
-- 
GitLab