Skip to content

Commit e194441

Browse files
committed
reorganize
1 parent a9b7a7f commit e194441

File tree

2 files changed

+9
-22
lines changed

2 files changed

+9
-22
lines changed

lib/algora/cloud.ex

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,10 @@ defmodule Algora.Cloud do
99
call(AlgoraCloud, :list_top_matches, [opts])
1010
end
1111

12+
def get_contribution_score(tech_stack, user, contributions_map) do
13+
call(AlgoraCloud, :get_contribution_score, [tech_stack, user, contributions_map])
14+
end
15+
1216
defp call(module, function, args) do
1317
if :code.which(module) == :non_existing do
1418
# TODO: call algora API

lib/algora_web/live/org/job_live.ex

Lines changed: 5 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -836,9 +836,9 @@ defmodule AlgoraWeb.Org.JobLive do
836836

837837
socket
838838
|> assign(:developers, developers)
839-
|> assign(:applicants, sort_applicants_by_contributions(socket.assigns.job, applicants, contributions_map))
840-
|> assign(:imports, sort_applicants_by_contributions(socket.assigns.job, imports, contributions_map))
841-
|> assign(:matches, sort_applicants_by_contributions(socket.assigns.job, matches, contributions_map))
839+
|> assign(:applicants, sort_by_contributions(socket.assigns.job, applicants, contributions_map))
840+
|> assign(:imports, sort_by_contributions(socket.assigns.job, imports, contributions_map))
841+
|> assign(:matches, sort_by_contributions(socket.assigns.job, matches, contributions_map))
842842
|> assign(:contributions_map, contributions_map)
843843
end
844844

@@ -1228,27 +1228,10 @@ defmodule AlgoraWeb.Org.JobLive do
12281228
|> Enum.group_by(& &1.user.id)
12291229
end
12301230

1231-
# Sort applicants by their total number of contributions
1232-
defp sort_applicants_by_contributions(job, applicants, contributions_map) do
1231+
defp sort_by_contributions(job, applicants, contributions_map) do
12331232
Enum.sort_by(
12341233
applicants,
1235-
fn application ->
1236-
contributions = Map.get(contributions_map, application.user.id, [])
1237-
1238-
Enum.reduce(contributions, 0, fn contribution, acc ->
1239-
stars = contribution.repository.stargazers_count
1240-
contribution_count = contribution.contribution_count
1241-
1242-
delta =
1243-
if Enum.any?(job.tech_stack, fn tech -> tech in Enum.take(contribution.repository.tech_stack, 1) end) do
1244-
:math.log(stars + 1) * contribution_count
1245-
else
1246-
:math.pow(:math.log(stars + 1) * contribution_count, 0.5)
1247-
end
1248-
1249-
acc + delta
1250-
end)
1251-
end,
1234+
&Algora.Cloud.get_contribution_score(job.tech_stack, &1.user, contributions_map),
12521235
:desc
12531236
)
12541237
end

0 commit comments

Comments
 (0)