zf

zenflows testing
git clone https://s.sonu.ch/~srfsh/zf.git
Log | Files | Refs | Submodules | README | LICENSE

commit 42b9ccf0c62d6c08f784e139a9b7a63d55d13386
parent 545dd499ec89dc8be410376b0878b5780c34d94c
Author: srfsh <dev@srf.sh>
Date:   Wed,  6 Jul 2022 12:43:03 +0200

vf/person: make pubkeys optional when inserting

Diffstat:
Mpriv/repo/migrations/20211111175352_fill_vf_agent.exs | 1-
Msrc/zenflows/vf/person.ex | 21+++++++++++++--------
2 files changed, 13 insertions(+), 9 deletions(-)

diff --git a/priv/repo/migrations/20211111175352_fill_vf_agent.exs b/priv/repo/migrations/20211111175352_fill_vf_agent.exs @@ -6,7 +6,6 @@ use Ecto.Migration type = 'per' AND "user" IS NOT NULL AND email IS NOT NULL - AND pubkeys IS NOT NULL AND classified_as IS NULL ) OR diff --git a/src/zenflows/vf/person.ex b/src/zenflows/vf/person.ex @@ -29,8 +29,8 @@ schema "vf_agent" do field :pubkeys_encoded, :string, virtual: true end -@insert_reqr ~w[name user email pubkeys_encoded]a -@insert_cast @insert_reqr ++ ~w[image note primary_location_id]a +@insert_reqr ~w[name user email]a +@insert_cast @insert_reqr ++ ~w[pubkeys_encoded image note primary_location_id]a # TODO: Maybe add email to @update_cast as well? @update_cast ~w[name image note primary_location_id user]a @@ -52,7 +52,6 @@ def chgset(params) do |> Changeset.unique_constraint(:name) |> Changeset.unique_constraint(:email) |> Changeset.assoc_constraint(:primary_location) - |> Changeset.check_constraint(:pubkeys, name: :type_mutex) end # update changeset @@ -80,11 +79,17 @@ end @spec decode_pubkeys(Changeset.t()) :: Changeset.t() defp decode_pubkeys(cset) do - with {:ok, val} <- Changeset.fetch_change(cset, :pubkeys_encoded), - {:ok, decoded} <- Base.url_decode64(val) do - Changeset.put_change(cset, :pubkeys, decoded) - else _ -> - Changeset.add_error(cset, :pubkeys, "not valid url-safe base64-encoded string") + case Changeset.fetch_change(cset, :pubkeys_encoded) do + {:ok, val} -> + case Base.url_decode64(val) do + {:ok, decoded} -> + Changeset.put_change(cset, :pubkeys, decoded) + + :error -> + Changeset.add_error(cset, :pubkeys, "not valid url-safe base64-encoded string") + end + :error -> + cset end end end