zf

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

commit c3015c0e36a381e547eb401b57aa7dd5b9506ddf
parent 114ece136e1650a5fc0d447a8bbf0320a238960a
Author: Alberto Lerda <albertolerda97@gmail.com>
Date:   Tue, 25 Oct 2022 09:09:03 +0200

Zenflows.VF.Person: get just eddsa public key

Diffstat:
Msrc/zenflows/vf/person/domain.ex | 10++++++++++
Msrc/zenflows/vf/person/resolv.ex | 4++++
Msrc/zenflows/vf/person/type.ex | 10++++++++--
3 files changed, 22 insertions(+), 2 deletions(-)

diff --git a/src/zenflows/vf/person/domain.ex b/src/zenflows/vf/person/domain.ex @@ -54,6 +54,16 @@ def exists?(conds) do where(Person, ^conds) |> Repo.exists?() end +@spec pubkey(Keyword.t()) :: {:ok, Person.t()} | {:error, chgset()} +def pubkey(email) do + where(Person, email: ^email) + |> select([:eddsa_public_key]) |> Repo.one() + |> case do + nil -> {:error, "not found"} + found -> {:ok, found} + end +end + @spec create(params()) :: {:ok, Person.t()} | {:error, chgset()} def create(params) do Multi.new() diff --git a/src/zenflows/vf/person/resolv.ex b/src/zenflows/vf/person/resolv.ex @@ -32,6 +32,10 @@ def person_exists(params, _) do Domain.one(params) end +def person_pubkey(%{email: email}, _) do + Domain.pubkey(email) +end + def create_person(%{person: params}, _) do with {:ok, per} <- Domain.create(params) do {:ok, %{agent: per}} diff --git a/src/zenflows/vf/person/type.ex b/src/zenflows/vf/person/type.ex @@ -83,6 +83,12 @@ object :person do field :schnorr_public_key, :string end +@desc "Person eddsa public key" +object :person_pubkey do + @desc @eddsa_public_key + field :eddsa_public_key, :string +end + input_object :person_create_params do @desc @name field :name, non_null(:string) @@ -182,10 +188,10 @@ object :query_person do resolve &Resolv.person_exists/2 end @desc "Retrieve a person from the email (if a person with that email exists)" - field :person_pubkey, :person do + field :person_pubkey, :person_pubkey do meta only_guest?: true arg :email, non_null(:string) - resolve &Resolv.person_exists/2 + resolve &Resolv.person_pubkey/2 end end