Skip to content

Commit 489469d

Browse files
committed
drop 404 users while syncing contributions
1 parent 0c20821 commit 489469d

File tree

1 file changed

+14
-14
lines changed

1 file changed

+14
-14
lines changed

lib/algora/workspace/workspace.ex

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -844,10 +844,7 @@ defmodule Algora.Workspace do
844844
:ok <- add_contributions(token, users, cloud_contributions) do
845845
# Always mark users as synced after fetching from Cloud API
846846
mark_users_as_synced(users_without_contributions, users)
847-
848-
existing_contributions = get_existing_contributions(users_with_contributions_logins)
849-
all_contributions = existing_contributions ++ cloud_contributions
850-
{:ok, all_contributions}
847+
{:ok, users}
851848
else
852849
{:error, reason} ->
853850
Logger.error("Failed to fetch contributions for #{inspect(provider_logins)}: #{inspect(reason)}")
@@ -885,7 +882,7 @@ defmodule Algora.Workspace do
885882
users_map = Enum.group_by(users, & &1.provider_login)
886883

887884
results =
888-
Enum.map(contributions, fn contribution ->
885+
Enum.flat_map(contributions, fn contribution ->
889886
case users_map[contribution.provider_login] do
890887
[user] ->
891888
%{
@@ -895,10 +892,10 @@ defmodule Algora.Workspace do
895892
}
896893
|> Jobs.SyncContribution.new()
897894
|> Oban.insert()
895+
|> then(&[&1])
898896

899897
_ ->
900-
Logger.error("User not found for #{contribution.provider_login}")
901-
{:error, :user_not_found}
898+
[]
902899
end
903900
end)
904901

@@ -947,13 +944,16 @@ defmodule Algora.Workspace do
947944
end
948945

949946
def ensure_users(token, provider_logins) do
950-
Repo.tx(fn ->
951-
provider_logins
952-
|> Enum.map(&ensure_user(token, &1))
953-
|> Enum.reduce_while({:ok, []}, fn
954-
{:ok, user}, {:ok, users} -> {:cont, {:ok, [user | users]}}
955-
{:error, reason}, _ -> {:halt, {:error, reason}}
956-
end)
947+
provider_logins
948+
|> Enum.map(&ensure_user(token, &1))
949+
|> Enum.reduce_while({:ok, []}, fn
950+
{:ok, user}, {:ok, users} ->
951+
{:cont, {:ok, [user | users]}}
952+
953+
{:error, reason}, acc ->
954+
Logger.error("Something went wrong fetching user #{IO.inspect(reason)}")
955+
{:cont, acc}
956+
# {:halt, {:error, reason}}
957957
end)
958958
end
959959

0 commit comments

Comments
 (0)