Skip to content

Commit dfc6512

Browse files
committed
Fixes Sync blocks after loan migration #788. Add optional configuration and method for syncing patron blocks. Call in wrap-up method.
1 parent eae329c commit dfc6512

File tree

1 file changed

+35
-7
lines changed

1 file changed

+35
-7
lines changed

src/folio_migration_tools/migration_tasks/loans_migrator.py

Lines changed: 35 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,22 +5,24 @@
55
import sys
66
import time
77
import traceback
8-
from datetime import datetime
9-
from datetime import timedelta
10-
from typing import Optional
8+
from datetime import datetime, timedelta
9+
from typing import Annotated, Optional
1110
from urllib.error import HTTPError
12-
from zoneinfo import ZoneInfo
1311

1412
import httpx
1513
import i18n
1614
from dateutil import parser as du_parser
1715
from folio_uuid.folio_namespaces import FOLIONamespaces
16+
from pydantic import Field
17+
from zoneinfo import ZoneInfo
1818

1919
from folio_migration_tools.circulation_helper import CirculationHelper
2020
from folio_migration_tools.helper import Helper
21-
from folio_migration_tools.library_configuration import FileDefinition
22-
from folio_migration_tools.library_configuration import FolioRelease
23-
from folio_migration_tools.library_configuration import LibraryConfiguration
21+
from folio_migration_tools.library_configuration import (
22+
FileDefinition,
23+
FolioRelease,
24+
LibraryConfiguration,
25+
)
2426
from folio_migration_tools.mapping_file_transformation.mapping_file_mapper_base import (
2527
MappingFileMapperBase,
2628
)
@@ -40,6 +42,13 @@ class TaskConfiguration(AbstractTaskConfiguration):
4042
open_loans_files: list[FileDefinition]
4143
fallback_service_point_id: str
4244
starting_row: Optional[int] = 1
45+
sync_patron_blocks: Annotated[
46+
bool,
47+
Field(
48+
title="Sync patron blocks",
49+
descriptions="If set to true, a sync job will run for automated patron blocks"
50+
)
51+
] = False
4352
item_files: Optional[list[FileDefinition]] = []
4453
patron_files: Optional[list[FileDefinition]] = []
4554

@@ -280,6 +289,25 @@ def wrap_up(self):
280289
i18n.t("Loans migration report"), report_file, self.start_datetime
281290
)
282291
self.clean_out_empty_logs()
292+
self.sync_patron_blocks()
293+
294+
def sync_patron_blocks(self):
295+
if self.task_configuration.sync_patron_blocks:
296+
job_payload = {
297+
"scope": "full",
298+
}
299+
try:
300+
sync_job = self.folio_client.folio_post("/automated-patron-blocks/synchronization/job", job_payload)
301+
print(f"Sync job created:\n{json.dumps(sync_job)}")
302+
except Exception as ee:
303+
if hasattr(ee, "response"):
304+
logging.error(
305+
f"Failed to sync patron blocks: {ee.response.status_code} {ee.response.text}"
306+
)
307+
else:
308+
logging.error(f"Failed to sync patron blocks: {ee}")
309+
else:
310+
logging.info("Skipping patron block sync")
283311

284312
def write_failed_loans_to_file(self):
285313
csv_columns = [

0 commit comments

Comments
 (0)