summaryrefslogtreecommitdiff
path: root/lib/pleroma/ecto_type/activity_pub/object_validators/safe_text.ex
blob: d0f5f381fd6561f0cc85aaf8a6425abe1fedc177 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# Pleroma: A lightweight social networking server
# Copyright © 2017-2021 Pleroma Authors <https://pleroma.social/>
# SPDX-License-Identifier: AGPL-3.0-only

defmodule Pleroma.EctoType.ActivityPub.ObjectValidators.SafeText do
  use Ecto.Type

  alias Pleroma.HTML

  def type, do: :string

  def cast(str) when is_binary(str) do
    {:ok, HTML.filter_tags(str)}
  end

  def cast(_), do: :error

  def dump(data) do
    {:ok, data}
  end

  def load(data) do
    {:ok, data}
  end
end