46 lines
2.1 KiB
Python
46 lines
2.1 KiB
Python
from backend.content.content_sharepoint_manager import ContentSharePointManager
|
|
from backend.content.document_cleaner import DocumentCleaner
|
|
from common.constants.region import UserRegion
|
|
from datetime import datetime, timezone, timedelta
|
|
from common.log.log_utils import log_entry_exit_async
|
|
from backend.content.content_service import ContentService
|
|
from backend.content.models import ContentFolderDoc
|
|
from backend.content.constants import ContentSource
|
|
|
|
|
|
class SharePointContentRefresher:
|
|
def __init__(self) -> None:
|
|
self.content_sharepoint_manager = ContentSharePointManager()
|
|
self.document_cleaner = DocumentCleaner()
|
|
|
|
@log_entry_exit_async
|
|
async def refresh_all_in_database(self) -> None:
|
|
await self.content_sharepoint_manager.retrieve_directories_for_all_folders()
|
|
|
|
@log_entry_exit_async
|
|
async def refresh_selected(self) -> None:
|
|
selected_folders = [
|
|
{"folder": "about", "region": UserRegion.OTHER},
|
|
{"folder": "about", "region": UserRegion.ZH_CN},
|
|
{"folder": "blogs", "region": UserRegion.OTHER},
|
|
{"folder": "blogs", "region": UserRegion.ZH_CN},
|
|
{"folder": "career", "region": UserRegion.OTHER},
|
|
{"folder": "career", "region": UserRegion.ZH_CN},
|
|
{"folder": "contact", "region": UserRegion.OTHER},
|
|
{"folder": "contact", "region": UserRegion.ZH_CN},
|
|
{"folder": "testimony", "region": UserRegion.OTHER},
|
|
{"folder": "testimony", "region": UserRegion.ZH_CN},
|
|
{"folder": "development", "region": UserRegion.OTHER},
|
|
{"folder": "development", "region": UserRegion.ZH_CN},
|
|
{"folder": "legal", "region": UserRegion.OTHER},
|
|
{"folder": "legal", "region": UserRegion.ZH_CN},
|
|
]
|
|
for folder in selected_folders:
|
|
await self.content_sharepoint_manager.retrieve_directories_for_folder(
|
|
folder_name=folder["folder"], region=folder["region"]
|
|
)
|
|
|
|
# Clean up unused DocumentDocs
|
|
# This actually can be run separately and had idempotency guarantee
|
|
await self.document_cleaner.clean_up_unused_documents()
|