- defp send_to_user(%{info: %{"salmon" => salmon}}, feed, poster) do
- with {:ok, %{status_code: code}} <- poster.(salmon, feed, [{"Content-Type", "application/magic-envelope+xml"}], timeout: 10000, recv_timeout: 20000) do
- Logger.debug(fn -> "Pushed to #{salmon}, code #{code}" end)
+ @doc "Pushes an activity to remote account."
+ def send_to_user(%{recipient: %{info: %{salmon: salmon}}} = params),
+ do: send_to_user(Map.put(params, :recipient, salmon))
+
+ def send_to_user(%{recipient: url, feed: feed, poster: poster} = params) when is_binary(url) do
+ with {:ok, %{status: code}} when code in 200..299 <-
+ poster.(
+ url,
+ feed,
+ [{"Content-Type", "application/magic-envelope+xml"}]
+ ) do
+ if params[:unreachable_since], do: Instances.set_reachable(url)
+ Logger.debug(fn -> "Pushed to #{url}, code #{code}" end)
+ :ok