diff --git a/functions-python/tasks_executor/src/tasks/data_import/transitfeeds/sync_transitfeeds.py b/functions-python/tasks_executor/src/tasks/data_import/transitfeeds/sync_transitfeeds.py index 3e685df62..2f6e40431 100644 --- a/functions-python/tasks_executor/src/tasks/data_import/transitfeeds/sync_transitfeeds.py +++ b/functions-python/tasks_executor/src/tasks/data_import/transitfeeds/sync_transitfeeds.py @@ -92,14 +92,30 @@ def _process_feeds( feed_stable_id, ) - # Init-on-create (shared fields) - if is_new: - feed.name = row["Feed Name"] - feed.externalids = [ + # Set transitfeeds Externalid + existing_externalid = [ + eid + for eid in feed.externalids + if eid.source == "transitfeeds" + and eid.associated_id == row["External Feed ID"] + ] + if existing_externalid: + logger.debug( + "[%s] External ID for source 'transitfeeds' already set for %s: %s", + feed_kind.upper(), + feed_stable_id, + existing_externalid[0].associated_id, + ) + else: + feed.externalids.append( Externalid( source="transitfeeds", associated_id=row["External Feed ID"] ) - ] + ) + feed.operational_status = "published" + # Init-on-create (shared fields) + if is_new: + feed.name = row["Feed Name"] feed.provider = row["Provider"] feed.producer_url = row["Producer URL"] logger.debug( diff --git a/liquibase/changes/feat_1249-3.sql b/liquibase/changes/feat_1249-3.sql new file mode 100644 index 000000000..ba9b403b0 --- /dev/null +++ b/liquibase/changes/feat_1249-3.sql @@ -0,0 +1,4 @@ +-- Set operational_status to published for tfs feeds +UPDATE feed +SET operational_status = 'published' +WHERE stable_id like 'tfs-%'; \ No newline at end of file