end
end
+ def insert_or_update_user(data) do
+ cs = User.remote_user_creation(data)
+ Repo.insert(cs, on_conflict: :replace_all, conflict_target: :nickname)
+ end
+
def make_user(uri) do
with {:ok, info} <- gather_user_info(uri) do
data = %{
}
with %User{} = user <- User.get_by_ap_id(data.ap_id) do
{:ok, user}
- else _e ->
- cs = User.remote_user_creation(data)
- Repo.insert(cs)
+ else _e -> insert_or_update_user(data)
end
end
end
assert activity.data["object"]["id"] == "tag:shitposter.club,2017-05-05:noticeId=2827873:objectType=comment"
end
end
+
+ test "insert or update a user from given data" do
+ user = insert(:user, %{nickname: "nick@name.de"})
+ data = %{ ap_id: user.ap_id <> "xxx", name: user.name, nickname: user.nickname }
+
+ assert {:ok, %User{}} = OStatus.insert_or_update_user(data)
+ end
end