Files
music_library/lib/music_library/secrets.ex
T
Claudio Ortolina 9e1dbfd530 Re-enable Credo ModuleDoc check
Closes #108
2026-03-13 10:52:01 +00:00

26 lines
613 B
Elixir

defmodule MusicLibrary.Secrets do
@moduledoc """
Encrypted key-value storage for API keys and credentials.
"""
alias MusicLibrary.Repo
alias MusicLibrary.Secrets.Secret
@spec store(String.t(), String.t()) :: {:ok, Secret.t()} | {:error, Ecto.Changeset.t()}
def store(name, value) do
%Secret{}
|> Secret.changeset(%{name: name, value: value})
|> Repo.insert(on_conflict: :replace_all)
end
@spec get!(String.t()) :: Secret.t()
def get!(name) do
Repo.get!(Secret, name)
end
@spec get(String.t()) :: Secret.t() | nil
def get(name) do
Repo.get(Secret, name)
end
end