Merge branch 'develop' into feature/gen-magic
[akkoma] / lib / pleroma / ecto_type / config / atom.ex
1 # Pleroma: A lightweight social networking server
2 # Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/>
3 # SPDX-License-Identifier: AGPL-3.0-only
4
5 defmodule Pleroma.EctoType.Config.Atom do
6 use Ecto.Type
7
8 def type, do: :atom
9
10 def cast(key) when is_atom(key) do
11 {:ok, key}
12 end
13
14 def cast(key) when is_binary(key) do
15 {:ok, Pleroma.ConfigDB.string_to_elixir_types(key)}
16 end
17
18 def cast(_), do: :error
19
20 def load(key) do
21 {:ok, Pleroma.ConfigDB.string_to_elixir_types(key)}
22 end
23
24 def dump(key) when is_atom(key), do: {:ok, inspect(key)}
25 def dump(_), do: :error
26 end