aboutsummaryrefslogtreecommitdiff
path: root/lib/pleroma/instances
diff options
context:
space:
mode:
authorIvan Tashkinov <ivantashkinov@gmail.com>2019-01-28 11:03:52 +0300
committerIvan Tashkinov <ivantashkinov@gmail.com>2019-01-28 11:03:52 +0300
commit9560abea102b8cd4927c9350bbd0a1a2f1800ea6 (patch)
treebe0e143dea5e641c677096485cbb9e25394e9033 /lib/pleroma/instances
parentd99650270b980c006690a7051a2d5cffe07779f1 (diff)
downloadpleroma-9560abea102b8cd4927c9350bbd0a1a2f1800ea6.tar.gz
[#534] Refactoring / tweaks per MR review.
Diffstat (limited to 'lib/pleroma/instances')
-rw-r--r--lib/pleroma/instances/instance.ex34
1 files changed, 14 insertions, 20 deletions
diff --git a/lib/pleroma/instances/instance.ex b/lib/pleroma/instances/instance.ex
index 60e8d0e21..e3af4a8a7 100644
--- a/lib/pleroma/instances/instance.ex
+++ b/lib/pleroma/instances/instance.ex
@@ -13,7 +13,6 @@ defmodule Pleroma.Instances.Instance do
schema "instances" do
field(:host, :string)
field(:unreachable_since, :naive_datetime)
- field(:reachability_checked_at, :naive_datetime)
timestamps()
end
@@ -22,7 +21,7 @@ defmodule Pleroma.Instances.Instance do
def changeset(struct, params \\ %{}) do
struct
- |> cast(params, [:host, :unreachable_since, :reachability_checked_at])
+ |> cast(params, [:host, :unreachable_since])
|> validate_required([:host])
|> unique_constraint(:host)
end
@@ -66,7 +65,7 @@ defmodule Pleroma.Instances.Instance do
%Instance{} = existing_record <- Repo.get_by(Instance, %{host: host}) do
{:ok, _instance} =
existing_record
- |> changeset(%{unreachable_since: nil, reachability_checked_at: DateTime.utc_now()})
+ |> changeset(%{unreachable_since: nil})
|> Repo.update()
end
end
@@ -80,27 +79,22 @@ defmodule Pleroma.Instances.Instance do
host = host(url)
existing_record = Repo.get_by(Instance, %{host: host})
- changes = %{
- unreachable_since: unreachable_since,
- reachability_checked_at: NaiveDateTime.utc_now()
- }
+ changes = %{unreachable_since: unreachable_since}
- if existing_record do
- update_changes =
- if existing_record.unreachable_since &&
- NaiveDateTime.compare(existing_record.unreachable_since, unreachable_since) != :gt,
- do: Map.delete(changes, :unreachable_since),
- else: changes
-
- {:ok, _instance} =
- existing_record
- |> changeset(update_changes)
- |> Repo.update()
- else
- {:ok, _instance} =
+ cond do
+ is_nil(existing_record) ->
%Instance{}
|> changeset(Map.put(changes, :host, host))
|> Repo.insert()
+
+ existing_record.unreachable_since &&
+ NaiveDateTime.compare(existing_record.unreachable_since, unreachable_since) != :gt ->
+ {:noop, existing_record}
+
+ true ->
+ existing_record
+ |> changeset(changes)
+ |> Repo.update()
end
end