From 1248eeb88d90f0ece972299d40b7406ef0a17cf5 Mon Sep 17 00:00:00 2001 From: kballou Date: Thu, 28 Jul 2016 16:44:32 -0600 Subject: Add HTTP "Ping" --- lib/exping.ex | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'lib/exping.ex') diff --git a/lib/exping.ex b/lib/exping.ex index 056bfda..c63c37a 100644 --- a/lib/exping.ex +++ b/lib/exping.ex @@ -1,5 +1,25 @@ defmodule ExPing do + require Logger @moduledoc """ Public API for ExPing """ + + @pings [&ExPing.HTTP.get/1, &ExPing.HTTP.head/1] + + @spec ping(URI.t) :: boolean + def ping(address) do + :ok = Logger.info("Attempting to ping #{inspect(address)}") + @pings + |> Enum.map(&spawn_ping(&1, address)) + |> Enum.all? + end + + @spec spawn_ping(fun, URI.t) :: boolean + defp spawn_ping(ping, address) do + case ping.(address) do + {:ok, _} -> true + {:error, _} -> false + end + end + end -- cgit v1.2.1