- 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, hackney: [pool: :default]) 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 !Map.has_key?(params, :unreachable_since) || params[:unreachable_since],
+ do: Instances.set_reachable(url)
+
+ Logger.debug(fn -> "Pushed to #{url}, code #{code}" end)
+ :ok