@@ -15,7 +15,21 @@ def self.apple_episode_json(api, show_id)
1515 end
1616
1717 def self . connect_existing ( apple_show_id , delegated_delivery_config )
18- if ( sl = SyncLog . apple . find_by ( feeder_id : delegated_delivery_config . public_feed . id , feeder_type : :feeds ) )
18+ public_feed = delegated_delivery_config . public_feed
19+
20+ # TODO: remove guard against transitional data
21+ unless public_feed . present?
22+ Rails . logger . warn (
23+ "Apple::DelegatedDeliveryConfig#public_feed is empty; using legacy public feed" ,
24+ apple_config_id : delegated_delivery_config . id ,
25+ podcast_id : delegated_delivery_config . podcast_id
26+ )
27+ public_feed = delegated_delivery_config . legacy_public_feed
28+ end
29+
30+ raise "Missing Apple public feed" unless public_feed
31+
32+ if ( sl = SyncLog . apple . find_by ( feeder_id : public_feed . id , feeder_type : :feeds ) )
1933 if apple_show_id . blank?
2034 return sl . destroy!
2135 elsif sl . external_id != apple_show_id
@@ -24,7 +38,7 @@ def self.connect_existing(apple_show_id, delegated_delivery_config)
2438 else
2539 SyncLog . log! (
2640 integration : :apple ,
27- feeder_id : delegated_delivery_config . public_feed . id ,
41+ feeder_id : public_feed . id ,
2842 feeder_type : :feeds ,
2943 sync_completed_at : Time . now . utc ,
3044 external_id : apple_show_id
@@ -33,7 +47,7 @@ def self.connect_existing(apple_show_id, delegated_delivery_config)
3347
3448 api = Apple ::Api . from_delegated_delivery_config ( delegated_delivery_config )
3549 new ( api : api ,
36- public_feed : delegated_delivery_config . public_feed ,
50+ public_feed : public_feed ,
3751 private_feed : delegated_delivery_config . delivery_feed )
3852 end
3953
0 commit comments