Skip to content

Commit

Permalink
Auto-post new episodes to changelog.social
Browse files Browse the repository at this point in the history
  • Loading branch information
jerodsanto committed Jul 10, 2024
1 parent 2017ca1 commit 2e41b7d
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 6 deletions.
9 changes: 5 additions & 4 deletions lib/changelog/oban_workers/social_poster.ex
Original file line number Diff line number Diff line change
Expand Up @@ -4,21 +4,22 @@ defmodule Changelog.ObanWorkers.SocialPoster do
"""
use Oban.Worker

alias Changelog.{Bsky, Episode, Repo, Slack}
alias Changelog.{Bsky, Episode, Repo, Social, Slack}

@impl Oban.Worker
def perform(%Oban.Job{args: %{"episode_id" => episode_id}}) do
episode = Episode |> Repo.get(episode_id) |> Episode.preload_all()

post_bsky_new_episode_message(episode)
post_social_new_episode_message(episode)
post_slack_new_episode_message(episode)

:ok
end

defp post_bsky_new_episode_message(episode) do
Bsky.post(episode)
end
defp post_bsky_new_episode_message(episode), do: Bsky.post(episode)

defp post_social_new_episode_message(episode), do: Social.post(episode)

defp post_slack_new_episode_message(episode) do
message = Slack.Messages.new_episode(episode)
Expand Down
8 changes: 6 additions & 2 deletions test/changelog/notifier_test.exs
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ defmodule Changelog.NotifierTest do

import Mock

alias Changelog.{Bsky, Notifier, Slack, Subscription, NewsItem, EpisodeRequest}
alias Changelog.{Bsky, Notifier, Slack, Social, Subscription, NewsItem, EpisodeRequest}
alias ChangelogWeb.Email

describe "notify/1 with news item comment" do
Expand Down Expand Up @@ -186,8 +186,9 @@ defmodule Changelog.NotifierTest do

describe "notify/1 with episode item" do
setup_with_mocks([
{Bsky, [], [post: fn _ -> true end]},
{Slack.Client, [], [message: fn _, _ -> true end]},
{Bsky, [], [post: fn _ -> true end]}
{Social, [], [post: fn _ -> true end]}
]) do
:ok
end
Expand All @@ -203,6 +204,7 @@ defmodule Changelog.NotifierTest do
assert_no_emails_delivered()
assert called(Slack.Client.message("#main", :_))
assert called(Bsky.post(:_))
assert called(Social.post(:_))
end

test "when episode has guests but none of them have 'thanks' set" do
Expand All @@ -220,6 +222,7 @@ defmodule Changelog.NotifierTest do
assert_no_emails_delivered()
assert called(Slack.Client.message("#main", :_))
assert called(Bsky.post(:_))
assert called(Social.post(:_))
end

test "when episode has guests and some of them have 'thanks' set" do
Expand All @@ -241,6 +244,7 @@ defmodule Changelog.NotifierTest do
assert_delivered_email(Email.guest_thanks(eg2))
assert called(Slack.Client.message("#main", :_))
assert called(Bsky.post(:_))
assert called(Social.post(:_))
end

test "when episode was requested" do
Expand Down

0 comments on commit 2e41b7d

Please sign in to comment.