forked from AkkomaGang/akkoma
16 lines
469 B
Elixir
16 lines
469 B
Elixir
|
# Pleroma: A lightweight social networking server
|
||
|
# Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/>
|
||
|
# SPDX-License-Identifier: AGPL-3.0-only
|
||
|
|
||
|
defmodule Pleroma.Maps do
|
||
|
def put_if_present(map, key, value, value_function \\ &{:ok, &1}) when is_map(map) do
|
||
|
with false <- is_nil(key),
|
||
|
false <- is_nil(value),
|
||
|
{:ok, new_value} <- value_function.(value) do
|
||
|
Map.put(map, key, new_value)
|
||
|
else
|
||
|
_ -> map
|
||
|
end
|
||
|
end
|
||
|
end
|