akkoma/lib/pleroma/web/api_spec/schemas/boolean_like.ex

41 lines
898 B
Elixir
Raw Normal View History

# Pleroma: A lightweight social networking server
# Copyright © 2017-2021 Pleroma Authors <https://pleroma.social/>
# SPDX-License-Identifier: AGPL-3.0-only
defmodule Pleroma.Web.ApiSpec.Schemas.BooleanLike do
2021-03-05 11:51:29 +00:00
alias OpenApiSpex.Cast
alias OpenApiSpex.Schema
require OpenApiSpex
OpenApiSpex.schema(%{
title: "BooleanLike",
description: """
The following values will be treated as `false`:
- false
- 0
- "0",
- "f",
- "F",
- "false",
- "FALSE",
- "off",
- "OFF"
All other non-null values will be treated as `true`
""",
anyOf: [
%Schema{type: :boolean},
%Schema{type: :string},
%Schema{type: :integer}
2021-03-05 11:51:29 +00:00
],
"x-validate": __MODULE__
})
2021-03-05 11:51:29 +00:00
def cast(%Cast{value: value} = context) do
context
|> Map.put(:value, Pleroma.Web.Params.truthy_param?(value))
2021-03-05 11:51:29 +00:00
|> Cast.ok()
end
end