Skip to content

Commit 0b05aa2

Browse files
committed
Resolve public feed while connecting Apple shows
1 parent ff2d66d commit 0b05aa2

2 files changed

Lines changed: 26 additions & 3 deletions

File tree

app/models/apple/show.rb

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -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

test/models/apple/show_test.rb

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -256,6 +256,15 @@
256256
describe ".connect_existing" do
257257
let(:apple_config) { create(:apple_config, feed: private_feed) }
258258

259+
it "uses the legacy public feed to connect an unbound config under binding routing" do
260+
with_show_feed_binding_routing do
261+
apple_show = Apple::Show.connect_existing("some_apple_id", apple_config)
262+
263+
assert_equal public_feed, apple_show.public_feed
264+
assert_equal "some_apple_id", public_feed.reload.apple_sync_log.external_id
265+
end
266+
end
267+
259268
it "should take in the apple show id an apple credentials object" do
260269
apple_config.save!
261270
apple_show = Apple::Show.connect_existing("some_apple_id", apple_config)

0 commit comments

Comments
 (0)