defmodule Web.AdminSyndicationLive do
  use Web, :live_view

  def mount(_params, _session, socket) do
    mastodon_account = Core.Syndication.get_mastodon_account(socket.assigns.current_user)
    bluesky_account = Core.Syndication.get_bluesky_account(socket.assigns.current_user)

    socket =
      socket
      |> assign(:mastodon_account, mastodon_account)
      |> assign(:bluesky_account, bluesky_account)

    {:ok, socket}
  end

  def handle_event(
        "save_bluesky_account",
        %{"bluesky_account" => %{"identifier" => identifier, "password" => password}},
        socket
      ) do
    {:ok, bluesky_account} =
      Core.Syndication.save_bluesky_account(socket.assigns.current_user, identifier, password)

    socket = assign(socket, bluesky_account: bluesky_account)

    {:noreply, socket}
  end
end