Merge branch 'develop' of https://git.pleroma.social/pleroma/pleroma into develop
[akkoma] / lib / pleroma / captcha / captcha_service.ex
index 6f36d29b013b4a6a038b640d63645872609b6c78..959038cef55e68eb5dd9eeb6224d90cad08a4f40 100644 (file)
@@ -1,12 +1,21 @@
+# Pleroma: A lightweight social networking server
+# Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/>
+# SPDX-License-Identifier: AGPL-3.0-only
+
 defmodule Pleroma.Captcha.Service do
   @doc """
   Request new captcha from a captcha service.
 
   Returns:
 
-  Service-specific data for using the newly created captcha
+  Type/Name of the service, the token to identify the captcha,
+  the data of the answer and service-specific data to use the newly created captcha
   """
-  @callback new() :: map
+  @callback new() :: %{
+              type: atom(),
+              token: String.t(),
+              answer_data: any()
+            }
 
   @doc """
   Validated the provided captcha solution.
@@ -23,6 +32,6 @@ defmodule Pleroma.Captcha.Service do
   @callback validate(
               token :: String.t(),
               captcha :: String.t(),
-              answer_data :: String.t()
+              answer_data :: any()
             ) :: :ok | {:error, String.t()}
 end