@@ -844,10 +844,7 @@ defmodule Algora.Workspace do
844
844
:ok <- add_contributions ( token , users , cloud_contributions ) do
845
845
# Always mark users as synced after fetching from Cloud API
846
846
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 }
851
848
else
852
849
{ :error , reason } ->
853
850
Logger . error ( "Failed to fetch contributions for #{ inspect ( provider_logins ) } : #{ inspect ( reason ) } " )
@@ -885,7 +882,7 @@ defmodule Algora.Workspace do
885
882
users_map = Enum . group_by ( users , & & 1 . provider_login )
886
883
887
884
results =
888
- Enum . map ( contributions , fn contribution ->
885
+ Enum . flat_map ( contributions , fn contribution ->
889
886
case users_map [ contribution . provider_login ] do
890
887
[ user ] ->
891
888
% {
@@ -895,10 +892,10 @@ defmodule Algora.Workspace do
895
892
}
896
893
|> Jobs.SyncContribution . new ( )
897
894
|> Oban . insert ( )
895
+ |> then ( & [ & 1 ] )
898
896
899
897
_ ->
900
- Logger . error ( "User not found for #{ contribution . provider_login } " )
901
- { :error , :user_not_found }
898
+ [ ]
902
899
end
903
900
end )
904
901
@@ -947,13 +944,16 @@ defmodule Algora.Workspace do
947
944
end
948
945
949
946
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}}
957
957
end )
958
958
end
959
959
0 commit comments