aboutsummaryrefslogtreecommitdiff
path: root/lib/recaptcha
diff options
context:
space:
mode:
Diffstat (limited to 'lib/recaptcha')
-rw-r--r--lib/recaptcha/http.ex22
-rw-r--r--lib/recaptcha/http/mock_http_client.ex3
-rw-r--r--lib/recaptcha/template.ex4
3 files changed, 22 insertions, 7 deletions
diff --git a/lib/recaptcha/http.ex b/lib/recaptcha/http.ex
index 01c088a..0182a7c 100644
--- a/lib/recaptcha/http.ex
+++ b/lib/recaptcha/http.ex
@@ -2,14 +2,18 @@ defmodule Recaptcha.Http do
@moduledoc """
Responsible for managing HTTP requests to the reCAPTCHA API
"""
- @headers [{"Content-type", "application/x-www-form-urlencoded"}, {"Accept", "application/json"}]
+ @headers [
+ {"Content-type", "application/x-www-form-urlencoded"},
+ {"Accept", "application/json"}
+ ]
@url Application.get_env(:recaptcha, :verify_url)
@timeout Application.get_env(:recaptcha, :timeout, 5000)
@doc """
Sends an HTTP request to the reCAPTCHA version 2.0 API.
- See the [documentation](https://developers.google.com/recaptcha/docs/verify#api-response) for more details on the API response.
+ See the [docs](https://developers.google.com/recaptcha/docs/verify#api-response)
+ for more details on the API response.
## Options
@@ -17,12 +21,22 @@ defmodule Recaptcha.Http do
## Example
- {:ok, %{ "success" => success, "challenge_ts" => ts, "hostname" => host, "error-codes" => errors}} = Recaptcha.Http.request_verification(%{ secret: "secret", response: "response", remote_ip: "remote_ip"})
+ {:ok, %{
+ "success" => success,
+ "challenge_ts" => ts,
+ "hostname" => host,
+ "error-codes" => errors
+ }} = Recaptcha.Http.request_verification(%{
+ secret: "secret",
+ response: "response",
+ remote_ip: "remote_ip"
+ })
"""
@spec request_verification(map, [timeout: integer]) :: {:ok, map} | {:error, [atom]}
def request_verification(body, options \\ []) do
+ timeout = options[:timeout] || @timeout
result =
- with {:ok, response} <- HTTPoison.post(@url, body, @headers, timeout: options[:timeout] || @timeout),
+ with {:ok, response} <- HTTPoison.post(@url, body, @headers, timeout: timeout),
{:ok, data} <- Poison.decode(response.body) do
{:ok, data}
end
diff --git a/lib/recaptcha/http/mock_http_client.ex b/lib/recaptcha/http/mock_http_client.ex
index 2355dd3..492376a 100644
--- a/lib/recaptcha/http/mock_http_client.ex
+++ b/lib/recaptcha/http/mock_http_client.ex
@@ -2,6 +2,7 @@ defmodule Recaptcha.Http.MockClient do
@moduledoc """
A mock HTTP client used for testing.
"""
+ alias Recaptcha.Http
def request_verification(body, options \\ [])
@@ -13,6 +14,6 @@ defmodule Recaptcha.Http.MockClient do
# every other match is a pass through to the real client
def request_verification(body, options) do
send self(), {:request_verification, body, options}
- Recaptcha.Http.request_verification(body, options)
+ Http.request_verification(body, options)
end
end
diff --git a/lib/recaptcha/template.ex b/lib/recaptcha/template.ex
index d644266..28db29c 100644
--- a/lib/recaptcha/template.ex
+++ b/lib/recaptcha/template.ex
@@ -2,8 +2,8 @@ defmodule Recaptcha.Template do
@moduledoc """
Responsible for rendering boilerplate recaptcha HTML code, supports noscript fallback.
- Currently the [explicit render](https://developers.google.com/recaptcha/docs/display#explicit_render) functionality
- is not supported.
+ [Some](https://developers.google.com/recaptcha/docs/display#explicit_render)
+ functionality is not currently supported.
In future this module may be separated out into a Phoenix specific library.
"""