First
[anni] / lib / pleroma / ecto_type / activity_pub / object_validators / safe_text.ex
1 # Pleroma: A lightweight social networking server
2 # Copyright © 2017-2022 Pleroma Authors <https://pleroma.social/>
3 # SPDX-License-Identifier: AGPL-3.0-only
4
5 defmodule Pleroma.EctoType.ActivityPub.ObjectValidators.SafeText do
6   use Ecto.Type
7
8   alias Pleroma.HTML
9
10   def type, do: :string
11
12   def cast(str) when is_binary(str) do
13     {:ok, HTML.filter_tags(str)}
14   end
15
16   def cast(_), do: :error
17
18   def dump(data) do
19     {:ok, data}
20   end
21
22   def load(data) do
23     {:ok, data}
24   end
25 end