blocking functions
This commit is contained in:
parent
a9e15e7515
commit
d19a228dca
|
@ -8,6 +8,7 @@ defmodule Vonbraun.Ecto.Schema.Actor do
|
||||||
schema "actors" do
|
schema "actors" do
|
||||||
field(:muted, :boolean)
|
field(:muted, :boolean)
|
||||||
field(:blocked, :naive_datetime)
|
field(:blocked, :naive_datetime)
|
||||||
|
field(:blocks_me, :naive_datetime)
|
||||||
field(:follows_me_state, :string)
|
field(:follows_me_state, :string)
|
||||||
field(:follows_me_ts, :naive_datetime)
|
field(:follows_me_ts, :naive_datetime)
|
||||||
field(:following_state, :string)
|
field(:following_state, :string)
|
||||||
|
@ -126,4 +127,42 @@ defmodule Vonbraun.Ecto.Schema.Actor do
|
||||||
{:error, error}
|
{:error, error}
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@spec block(String.t()) :: {:ok, __MODULE__.t()} | {:error, Changeset.t()}
|
||||||
|
def block(id) when is_binary(id) do
|
||||||
|
with {:actor, {:ok, actor}} <- {:actor, maybe_insert(id)} do
|
||||||
|
now = DateTime.now!("Etc/UTC")
|
||||||
|
|
||||||
|
changeset(actor, %{
|
||||||
|
blocked: now,
|
||||||
|
follows_me_state: nil,
|
||||||
|
follows_me_ts: now,
|
||||||
|
following_state: nil,
|
||||||
|
following_ts: now
|
||||||
|
})
|
||||||
|
|> Repo.update()
|
||||||
|
else
|
||||||
|
{:actor, {:error, error}} ->
|
||||||
|
{:error, error}
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
@spec block_me(String.t()) :: {:ok, __MODULE__.t()} | {:error, Changeset.t()}
|
||||||
|
def block_me(id) when is_binary(id) do
|
||||||
|
with {:actor, {:ok, actor}} <- {:actor, maybe_insert(id)} do
|
||||||
|
now = DateTime.now!("Etc/UTC")
|
||||||
|
|
||||||
|
changeset(actor, %{
|
||||||
|
blocks_me: now,
|
||||||
|
follows_me_state: nil,
|
||||||
|
follows_me_ts: now,
|
||||||
|
following_state: nil,
|
||||||
|
following_ts: now
|
||||||
|
})
|
||||||
|
|> Repo.update()
|
||||||
|
else
|
||||||
|
{:actor, {:error, error}} ->
|
||||||
|
{:error, error}
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue