diff --git a/lib/app/star.ex b/lib/app/star.ex index 4ac7f4a..e2ef0d5 100644 --- a/lib/app/star.ex +++ b/lib/app/star.ex @@ -1,7 +1,7 @@ defmodule App.Star do alias App.{Repo} use Ecto.Schema - import Ecto.{Changeset, Query} + import Ecto.Changeset require Logger alias __MODULE__ @@ -30,17 +30,18 @@ defmodule App.Star do end @doc """ - Get all repositories for an organization and insert them into DB. + `get_stargazers_for_repo/2` + gets the starts for a given `owner` and `repo` inserts any new `users`. """ def get_stargazers_for_repo(owner, repo) do repo_id = App.Repository.get_repo_id_by_full_name("#{owner}/#{repo}") App.GitHub.repo_stargazers(owner, repo) |> Enum.map(fn user -> - dbg(user) - # %{ + App.User.get_user_from_api(user) - # } - # create(repo) + {:ok, star} = create(%{ user_id: user.id, repo_id: repo_id }) + + star end) end end diff --git a/test/app/star_test.exs b/test/app/star_test.exs index 362e1dd..4460f53 100644 --- a/test/app/star_test.exs +++ b/test/app/star_test.exs @@ -9,4 +9,15 @@ defmodule App.StarTest do assert {:ok, inserted_star} = App.Star.create(star) assert inserted_star.repo_id == star.repo_id end + + test "App.Star.get_stargazers_for_repo/2 " do + owner = "ideaq" + App.Repository.get_org_repos(owner) + repo = "image-uploads" + list = App.Star.get_stargazers_for_repo(owner, repo) + star = Enum.filter(list, fn(s) -> s.user_id == 194400 end) |> List.first + + assert star.user_id == 194400 + assert star.repo_id == 35713694 + end end