Expose seconds_valid in Pleroma Captcha API endpoint

This commit is contained in:
Mark Felder 2020-07-29 16:07:22 -05:00
parent a6d3bb5f30
commit 33f0427809
6 changed files with 12 additions and 6 deletions

View file

@ -33,6 +33,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
contents has been renamed to `hide_notification_contents` contents has been renamed to `hide_notification_contents`
- Mastodon API: Added `pleroma.metadata.post_formats` to /api/v1/instance - Mastodon API: Added `pleroma.metadata.post_formats` to /api/v1/instance
- Mastodon API (legacy): Allow query parameters for `/api/v1/domain_blocks`, e.g. `/api/v1/domain_blocks?domain=badposters.zone` - Mastodon API (legacy): Allow query parameters for `/api/v1/domain_blocks`, e.g. `/api/v1/domain_blocks?domain=badposters.zone`
- **Breaking:** Pleroma API: `/api/pleroma/captcha` responses now include `seconds_valid` with an integer value.
</details> </details>
<details> <details>

View file

@ -50,7 +50,7 @@ Request parameters can be passed via [query strings](https://en.wikipedia.org/wi
* Authentication: not required * Authentication: not required
* Params: none * Params: none
* Response: Provider specific JSON, the only guaranteed parameter is `type` * Response: Provider specific JSON, the only guaranteed parameter is `type`
* Example response: `{"type": "kocaptcha", "token": "whatever", "url": "https://captcha.kotobank.ch/endpoint"}` * Example response: `{"type": "kocaptcha", "token": "whatever", "url": "https://captcha.kotobank.ch/endpoint", seconds_valid: 300}`
## `/api/pleroma/delete_account` ## `/api/pleroma/delete_account`
### Delete an account ### Delete an account

View file

@ -21,7 +21,8 @@ def new do
type: :kocaptcha, type: :kocaptcha,
token: json_resp["token"], token: json_resp["token"],
url: endpoint <> json_resp["url"], url: endpoint <> json_resp["url"],
answer_data: json_resp["md5"] answer_data: json_resp["md5"],
seconds_valid: Pleroma.Config.get([Pleroma.Captcha, :seconds_valid])
} }
end end
end end

View file

@ -17,7 +17,8 @@ def new do
type: :native, type: :native,
token: token(), token: token(),
url: "data:image/png;base64," <> Base.encode64(img_binary), url: "data:image/png;base64," <> Base.encode64(img_binary),
answer_data: answer_data answer_data: answer_data,
seconds_valid: Pleroma.Config.get([Pleroma.Captcha, :seconds_valid])
} }
end end
end end

View file

@ -41,7 +41,8 @@ test "new and validate" do
answer_data: answer, answer_data: answer,
token: ^token, token: ^token,
url: ^url, url: ^url,
type: :kocaptcha type: :kocaptcha,
seconds_valid: 300
} = new } = new
assert Kocaptcha.validate(token, "7oEy8c", answer) == :ok assert Kocaptcha.validate(token, "7oEy8c", answer) == :ok
@ -56,7 +57,8 @@ test "new and validate" do
answer_data: answer, answer_data: answer,
token: token, token: token,
type: :native, type: :native,
url: "data:image/png;base64," <> _ url: "data:image/png;base64," <> _,
seconds_valid: 300
} = new } = new
assert is_binary(answer) assert is_binary(answer)

View file

@ -16,7 +16,8 @@ def new,
type: :mock, type: :mock,
token: "afa1815e14e29355e6c8f6b143a39fa2", token: "afa1815e14e29355e6c8f6b143a39fa2",
answer_data: @solution, answer_data: @solution,
url: "https://example.org/captcha.png" url: "https://example.org/captcha.png",
seconds_valid: 300
} }
@impl Service @impl Service