Skip to content

Commit 5075b64

Browse files
WIP
1 parent 5bdeb37 commit 5075b64

2 files changed

Lines changed: 25 additions & 19 deletions

File tree

ted_sws/data_manager/adapters/metadata_repository.py

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,8 @@ def _update_metadata(self, reference: str, metadata: Metadata, upsert: bool = Fa
3232
:return:
3333
"""
3434
if metadata is not None:
35-
reference = self._build_reference(base_reference=reference)
3635
metadata_dict = metadata.dict()
36+
reference = self._build_reference(base_reference=reference)
3737
metadata_dict[MONGODB_COLLECTION_ID] = reference
3838
self.collection.update_one({MONGODB_COLLECTION_ID: reference}, {"$set": metadata_dict}, upsert=upsert)
3939

@@ -70,7 +70,6 @@ def add(self, reference: str, metadata: NormalisedMetadata):
7070
:param metadata:
7171
:return:
7272
"""
73-
reference = self._build_reference(base_reference=reference)
7473
self._update_metadata(reference=reference, metadata=metadata, upsert=True)
7574

7675
def update(self, reference: str, metadata: NormalisedMetadata):
@@ -108,7 +107,6 @@ def add(self, reference: str, metadata: TEDMetadata):
108107
:param metadata:
109108
:return:
110109
"""
111-
reference = self._build_reference(base_reference=reference)
112110
self._update_metadata(reference=reference, metadata=metadata, upsert=True)
113111

114112
def update(self, reference: str, metadata: TEDMetadata):
@@ -118,7 +116,6 @@ def update(self, reference: str, metadata: TEDMetadata):
118116
:param metadata:
119117
:return:
120118
"""
121-
122119
self._update_metadata(reference=reference, metadata=metadata)
123120

124121
def get(self, reference: str) -> Optional[TEDMetadata]:
@@ -145,7 +142,6 @@ def add(self, reference: str, metadata: XMLMetadata):
145142
:param metadata:
146143
:return:
147144
"""
148-
reference = self._build_reference(base_reference=reference)
149145
self._update_metadata(reference=reference, metadata=metadata, upsert=True)
150146

151147
def update(self, reference: str, metadata: XMLMetadata):

ted_sws/data_manager/adapters/notice_repository.py

Lines changed: 24 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,14 @@
4242
METADATA_PUBLICATION_DATE = "publication_date"
4343
METADATA_DOCUMENT_SENT_DATE = "document_sent_date"
4444

45+
NOTICE_ORIGINAL_METADATA_PRIVATE_KEY = "_original_metadata"
46+
NOTICE_NORMALISED_METADATA_PRIVATE_KEY = "_normalised_metadata"
47+
NOTICE_XML_METADATA_PRIVATE_KEY = "_xml_metadata"
48+
NOTICE_XML_MANIFESTATION_PRIVATE_KEY = "_xml_manifestation"
49+
NOTICE_RDF_MANIFESTATION_PRIVATE_KEY = "_rdf_manifestation"
50+
NOTICE_DISTILLED_RDF_MANIFESTATION_PRIVATE_KEY = "_distilled_rdf_manifestation"
51+
NOTICE_METS_MANIFESTATION_PRIVATE_KEY = "_mets_manifestation"
52+
4553

4654
class NoticeRepositoryInFileSystem(NoticeRepositoryABC):
4755
"""
@@ -164,21 +172,21 @@ def __init__(self, mongodb_client: MongoClient, database_name: str = None):
164172
self.xml_metadata_repository = XMLMetadataRepository(mongodb_client=mongodb_client,
165173
database_name=database_name)
166174

167-
def _mapping_lazy_fields(self, notice: Notice):
175+
def _mapping_lazy_fields(self):
168176
return {
169-
Notice.original_metadata: (notice._original_metadata,
177+
Notice.original_metadata: (NOTICE_ORIGINAL_METADATA_PRIVATE_KEY,
170178
self.ted_metadata_repository),
171-
Notice.normalised_metadata: (notice._normalised_metadata,
179+
Notice.normalised_metadata: (NOTICE_NORMALISED_METADATA_PRIVATE_KEY,
172180
self.normalised_metadata_repository),
173-
Notice.xml_metadata: (notice._xml_metadata,
181+
Notice.xml_metadata: (NOTICE_XML_METADATA_PRIVATE_KEY,
174182
self.xml_metadata_repository),
175-
Notice.xml_manifestation: (notice._xml_manifestation,
183+
Notice.xml_manifestation: (NOTICE_XML_MANIFESTATION_PRIVATE_KEY,
176184
self.xml_manifestation_repository),
177-
Notice.rdf_manifestation: (notice._rdf_manifestation,
185+
Notice.rdf_manifestation: (NOTICE_RDF_MANIFESTATION_PRIVATE_KEY,
178186
self.rdf_manifestation_repository),
179-
Notice.distilled_rdf_manifestation: (notice._distilled_rdf_manifestation,
187+
Notice.distilled_rdf_manifestation: (NOTICE_DISTILLED_RDF_MANIFESTATION_PRIVATE_KEY,
180188
self.distilled_rdf_manifestation_repository),
181-
Notice.mets_manifestation: (notice._mets_manifestation,
189+
Notice.mets_manifestation: (NOTICE_METS_MANIFESTATION_PRIVATE_KEY,
182190
self.mets_manifestation_repository)
183191
}
184192

@@ -189,15 +197,17 @@ def load_lazy_field(self, source_object: Notice, property_field: property) -> An
189197
:param property_field:
190198
:return:
191199
"""
192-
mapping_lazy_fields = self._mapping_lazy_fields(notice=source_object)
200+
mapping_lazy_fields = self._mapping_lazy_fields()
193201
notice_field, field_repository = mapping_lazy_fields[property_field]
194-
notice_field = field_repository.get(source_object.ted_id)
202+
notice_field_data = field_repository.get(source_object.ted_id)
203+
setattr(source_object, notice_field, notice_field_data)
195204

196205
def _write_lazy_fields(self, notice: Notice):
197-
mapping_lazy_fields = self._mapping_lazy_fields(notice=notice)
206+
mapping_lazy_fields = self._mapping_lazy_fields()
198207
for notice_field, repository in mapping_lazy_fields.values():
199-
if notice_field is not None:
200-
repository.add(notice.ted_id, notice_field)
208+
notice_field_data = getattr(notice, notice_field)
209+
if notice_field_data is not None:
210+
repository.add(notice.ted_id, notice_field_data)
201211

202212
def _create_notice_from_repository_result(self, notice_dict: dict) -> Union[Notice, None]:
203213
"""
@@ -207,7 +217,7 @@ def _create_notice_from_repository_result(self, notice_dict: dict) -> Union[Noti
207217
"""
208218
if notice_dict:
209219
del notice_dict[MONGODB_COLLECTION_ID]
210-
notice_dict.pop(NOTICE_NORMALISED_METADATA,None)
220+
notice_dict.pop(NOTICE_NORMALISED_METADATA, None)
211221
remove_date_string_fields(data=notice_dict, date_field_name=NOTICE_CREATED_AT)
212222
notice_dict[NOTICE_CREATED_AT] = notice_dict[NOTICE_CREATED_AT].isoformat()
213223
notice = Notice(**notice_dict)

0 commit comments

Comments
 (0)