Skip to content

Commit 427c47f

Browse files
committed
refactor
1 parent 641d44a commit 427c47f

File tree

1 file changed

+38
-43
lines changed

1 file changed

+38
-43
lines changed

lib/algora_web/live/admin/seed_live.ex

Lines changed: 38 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -236,7 +236,7 @@ defmodule AlgoraWeb.Admin.SeedLive do
236236
rows
237237
|> Stream.map(fn row -> Enum.zip_reduce(cols, row, Map.new(), fn col, val, acc -> Map.put(acc, col, val) end) end)
238238
|> Stream.map(&process_row/1)
239-
|> Task.async_stream(&add_user/1, max_concurrency: 10, timeout: :infinity)
239+
|> Task.async_stream(&Map.put(&1, "org", get_user(&1)), max_concurrency: 10, timeout: :infinity)
240240
|> Stream.map(fn {:ok, row} -> row end)
241241
|> Enum.to_list()
242242

@@ -255,54 +255,49 @@ defmodule AlgoraWeb.Admin.SeedLive do
255255
)
256256
end
257257

258-
defp add_user(%{"org_handle" => key} = row) when is_binary(key) and key != "" do
259-
user =
260-
case :ets.lookup(@user_cache_table, key) do
261-
[{_, user}] ->
262-
user
263-
264-
_ ->
265-
with {:ok, user} <- Workspace.ensure_user(Algora.Admin.token(), key),
266-
{:ok, user} <- Repo.fetch(User, user.id) do
267-
:ets.insert(@user_cache_table, {key, user})
268-
user
269-
else
270-
_ -> nil
271-
end
272-
end
258+
defp get_user(%{"org_handle" => handle} = _row) when is_binary(handle) and handle != "" do
259+
case :ets.lookup(@user_cache_table, handle) do
260+
[{_, user}] ->
261+
user
273262

274-
Map.put(row, "org", user)
275-
end
276-
277-
defp add_user(%{"company_url" => url} = row) when is_binary(url) and url != "" do
278-
user =
279-
case :ets.lookup(@user_cache_table, url) do
280-
[{_, user}] ->
263+
_ ->
264+
with {:ok, user} <- Workspace.ensure_user(Algora.Admin.token(), handle),
265+
{:ok, user} <- Repo.fetch(User, user.id) do
266+
:ets.insert(@user_cache_table, {handle, user})
281267
user
268+
else
269+
_ ->
270+
:ets.insert(@user_cache_table, {handle, nil})
271+
nil
272+
end
273+
end
274+
end
282275

283-
_ ->
284-
domain =
285-
url
286-
|> String.trim_leading("https://")
287-
|> String.trim_leading("http://")
288-
|> String.trim_leading("www.")
289-
290-
with {:ok, user} <-
291-
fetch_or_create_user(domain, %{hiring: true, tech_stack: row["tech_stack"]}),
292-
{:ok, user} <- Repo.fetch(User, user.id) do
293-
:ets.insert(@user_cache_table, {url, user})
294-
user
295-
else
296-
_ ->
297-
:ets.insert(@user_cache_table, {url, nil})
298-
nil
299-
end
300-
end
276+
defp get_user(%{"company_url" => url} = row) when is_binary(url) and url != "" do
277+
case :ets.lookup(@user_cache_table, url) do
278+
[{_, user}] ->
279+
user
301280

302-
Map.put(row, "org", user)
281+
_ ->
282+
domain =
283+
url
284+
|> String.trim_leading("https://")
285+
|> String.trim_leading("http://")
286+
|> String.trim_leading("www.")
287+
288+
with {:ok, user} <- fetch_or_create_user(domain, %{hiring: true, tech_stack: row["tech_stack"]}),
289+
{:ok, user} <- Repo.fetch(User, user.id) do
290+
:ets.insert(@user_cache_table, {url, user})
291+
user
292+
else
293+
_ ->
294+
:ets.insert(@user_cache_table, {url, nil})
295+
nil
296+
end
297+
end
303298
end
304299

305-
defp add_user(row), do: row
300+
defp get_user(_row), do: nil
306301

307302
def fetch_or_create_user(domain, opts) do
308303
case Repo.one(from o in User, where: o.domain == ^domain, limit: 1) do

0 commit comments

Comments
 (0)