|
7 | 7 | from pymongo import MongoClient |
8 | 8 |
|
9 | 9 | from mapping_suite_sdk.core.adapters.repository import MongoDBRepository, ModelNotFoundError |
10 | | -from mapping_suite_sdk.mapping_package_v1.models import MappingPackageV1 |
11 | | -from mapping_suite_sdk.mapping_package_v2.models import MappingPackageV2 |
12 | | -from mapping_suite_sdk.mapping_package_v3.models import MappingPackageV3 |
13 | | -from mapping_suite_sdk.mapping_package_v3.models.mapping_package_v3_lightweight import MappingPackageV3Lightweight |
14 | 10 |
|
15 | 11 | from src.ted_sws import config |
16 | 12 | from src.ted_sws.core.model.transform import MappingPackage, FileResource, TransformationRuleSet, SHACLTestSuite, \ |
@@ -63,67 +59,22 @@ def __init__(self, mongodb_client: MongoClient, database_name: str = None): |
63 | 59 | self.database_name = database_name or config.MONGO_DB_AGGREGATES_DATABASE_NAME |
64 | 60 | self.mongodb_client = mongodb_client |
65 | 61 |
|
66 | | - # Repositories for each package type |
67 | | - self._repo_v1 = MongoDBRepository( |
68 | | - model_class=MappingPackageV1, |
69 | | - mongo_client=mongodb_client, |
70 | | - database_name=self.database_name, |
71 | | - collection_name=self._collection_name |
72 | | - ) |
73 | | - self._repo_v2 = MongoDBRepository( |
74 | | - model_class=MappingPackageV2, |
75 | | - mongo_client=mongodb_client, |
76 | | - database_name=self.database_name, |
77 | | - collection_name=self._collection_name |
78 | | - ) |
79 | | - self._repo_v3 = MongoDBRepository( |
80 | | - model_class=MappingPackageV3, |
81 | | - mongo_client=mongodb_client, |
82 | | - database_name=self.database_name, |
83 | | - collection_name=self._collection_name |
84 | | - ) |
85 | | - self._repo_v3_lightweight = MongoDBRepository( |
86 | | - model_class=MappingPackageV3Lightweight, |
87 | | - mongo_client=mongodb_client, |
| 62 | + def _get_repository(self, package: MappingPackage) -> MongoDBRepository: |
| 63 | + return MongoDBRepository( |
| 64 | + model_class=type(package), |
| 65 | + mongo_client=self.mongodb_client, |
88 | 66 | database_name=self.database_name, |
89 | 67 | collection_name=self._collection_name |
90 | 68 | ) |
91 | | - self._repo_legacy = MongoDBRepository( |
92 | | - model_class=MappingPackage, |
93 | | - mongo_client=mongodb_client, |
| 69 | + |
| 70 | + def get_repository_by_class(self, package_class): |
| 71 | + return MongoDBRepository( |
| 72 | + model_class=package_class, |
| 73 | + mongo_client=self.mongodb_client, |
94 | 74 | database_name=self.database_name, |
95 | 75 | collection_name=self._collection_name |
96 | 76 | ) |
97 | 77 |
|
98 | | - def _get_repository(self, package: MappingPackage) -> MongoDBRepository: |
99 | | - """Get the appropriate repository based on package type.""" |
100 | | - if isinstance(package, MappingPackageV3Lightweight): |
101 | | - return self._repo_v3_lightweight |
102 | | - elif isinstance(package, MappingPackageV3): |
103 | | - return self._repo_v3 |
104 | | - elif isinstance(package, MappingPackageV2): |
105 | | - return self._repo_v2 |
106 | | - elif isinstance(package, MappingPackageV1): |
107 | | - return self._repo_v1 |
108 | | - elif isinstance(package, MappingPackage): |
109 | | - return self._repo_legacy |
110 | | - else: |
111 | | - raise ValueError(f"Unsupported package type: {type(package).__name__}") |
112 | | - |
113 | | - def get_repository_by_class(self, package_class): |
114 | | - if package_class == MappingPackageV1: |
115 | | - return self._repo_v1 |
116 | | - elif package_class == MappingPackageV2: |
117 | | - return self._repo_v2 |
118 | | - elif package_class == MappingPackageV3: |
119 | | - return self._repo_v3 |
120 | | - elif package_class == MappingPackageV3Lightweight: |
121 | | - return self._repo_v3_lightweight |
122 | | - elif package_class == MappingPackage: |
123 | | - return self._repo_legacy |
124 | | - else: |
125 | | - raise ValueError(f"Unsupported package class: {package_class.__name__}") |
126 | | - |
127 | 78 | def add(self, mapping_package: MappingPackage) -> MappingPackage: |
128 | 79 | """Save a mapping package to MongoDB. |
129 | 80 |
|
|
0 commit comments